Java 找不到协议的提供程序:smtp

Java 找不到协议的提供程序:smtp,java,spring,jakarta-mail,Java,Spring,Jakarta Mail,春天来了。我正在捕获以下异常: 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.NoSuchPr

春天来了。我正在捕获以下异常:

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)
我有一个mail-config.xml,它在我的web.xml中注册。这是:

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

我应该能够匿名登录到指定的邮件服务器,因此不需要用户或密码


我遗漏了什么?

您的类路径中是否有
mail.jar
activation.jar

这些类应提供smtp提供程序

如果您使用的是maven,只需将其添加到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>

javax.mail
邮件
1.4
javax.activation
激活
1.0.2

我也有同样的问题。我使用mailapi作为工件id,这导致了问题。 我换了
mailapi
with
邮件
而且效果很好

好吧,我很确定我没有。但是如何使用maven添加它们呢?我是否只是把某些东西作为依赖项?我不知道maven和spring之间有多少复杂之处,但我的任务是学习它们。对不起,是的,你可以用maven添加它们。在您的存储库中搜索邮件和激活。以防有人阅读:他们将javax.mail替换为适用于使用OSGi的人:升级到最新版本():javax.mail+javax.activation由于其类加载机制,无法与OSGi很好地配合使用。更多信息请点击此处: