2012-06-14 12 views
13

Nuovo a primavera. Sto ottenendo la seguente eccezione di essere catturati:Impossibile individuare il provider per il protocollo: smtp

2012-06-14 16:20:57,719 [http-8080-6] ERROR com.nimchip.lmu.data.service.impl.CoworkerServiceImpl - Error sending mail: 
org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.NoSuchProviderException: Unable to locate provider for protocol: smtp. Failed messages: javax.mail.NoSuchProviderException: Unable to locate provider for protocol: smtp 
    at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:400) ~[spring-context-support-3.1.0.RELEASE.jar:3.1.0.RELEASE] 
    at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:306) ~[spring-context-support-3.1.0.RELEASE.jar:3.1.0.RELEASE] 
    at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:296) ~[spring-context-support-3.1.0.RELEASE.jar:3.1.0.RELEASE] 
    at com.nimchip.lmu.data.service.impl.CoworkerServiceImpl.genUpdateNomination(CoworkerServiceImpl.java:224) ~[lmu-dataaccess-1.0.0.jar:na] 
    at com.nimchip.lmu.controller.coworkerNom.CoworkerController.genUpdateNomination(CoworkerController.java:312) 

ho una corrispondenza config.xml che è registrato nel mio web.xml. Eccolo:

<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> 

    <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> 
     <property name="host" value="10.30.137.190"/> 
     <property name="port" value="25"/> 
    </bean> 

</beans> 

dovrei essere in grado di accedere in forma anonima al server di posta specificato, in modo che nessun utente o password necessaria.

Cosa mi manca?

risposta

28

Avete il mail.jar e activation.jar nel classpath?

Queste classi devono fornire il provider smtp.

Se si utilizza Maven, basta aggiungere questo al tuo pom:

<dependency> 
     <groupId>javax.mail</groupId> 
     <artifactId>mail</artifactId> 
     <version>1.4</version> 
    </dependency> 

    <dependency> 
     <groupId>javax.activation</groupId> 
     <artifactId>activation</artifactId> 
     <version>1.0.2</version> 
    </dependency> 
+0

Ok io sono abbastanza sicuro che non lo faccio. Ma come li aggiungo usando Maven? Devo solo mettere qualcosa come una dipendenza? Non conosco molte complicazioni tra il maven e la primavera, ma sono stato incaricato di impararle scusate. – Nimchip

+0

Sì, puoi aggiungerli con Maven. Cerca la posta e l'attivazione nel tuo repository. –

+0

OK, fammi vedere se lo risolve. – Nimchip

0

Ho avuto lo stesso problema. Stavo usando mailapi come id artefatto e questo stava causando il problema. Ho sostituito <artifactId>mailapi</artifactId> con <artifactId>mail</artifactId> e ha funzionato bene

Problemi correlati