2012-06-14 19 views
13

Nuevo en la primavera. Me estoy poniendo la siguiente excepción ser capturado:No se puede localizar el proveedor para el protocolo: 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) 

Tengo un-config.xml electrónico que está registrada en mi web.xml. Aquí está:

<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> 

yo debería ser capaz de iniciar sesión de forma anónima al servidor de correo especificada, por lo que ningún usuario o contraseña necesaria.

¿Qué me estoy perdiendo?

Respuesta

28

¿Tiene mail.jar y activation.jar en su classpath?

Estas clases deben proporcionar el proveedor smtp.

Si está utilizando Maven, sólo tiene que añadir esto a su 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 estoy bastante seguro de que no lo hacen. ¿Pero cómo los agrego usando maven? ¿Acabo de poner algo como una dependencia? No conozco muchas complejidades entre maven y la primavera, sin embargo, me encargaron de aprender lo siento. – Nimchip

+0

Sí, solo puede agregarlos con maven. Busque el correo y la activación en su repositorio. –

+0

Bien hecho, déjame ver si eso lo arregla. – Nimchip

0

que tenían el mismo problema. Estaba usando mailapi como identificador de artefacto y eso estaba causando el problema. Substituí <artifactId>mailapi</artifactId> con <artifactId>mail</artifactId> y funcionó bien

Cuestiones relacionadas