如何在春季启动反馈mailsender中解决此NumberFormatException问题

package yash.noteappapi.mail;

import org.springframework.core.env.Environment;

import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.stereotype.Component;

@Component
public class FeedbackMailSender implements FeedbackSender
{
  private JavaMailSenderImpl mailSender;

  public FeedbackMailSender(Environment environment){
    mailSender = new JavaMailSenderImpl();

    mailSender.setHost(environment.getProperty("spring.mail.host"));
    mailSender.setPort(Integer.parseInt(environment.getProperty("string.mail.port")));
    mailSender.setusername(environment.getProperty("string.mail.username"));
    mailSender.setPassword(environment.getProperty("spring.mail.password"));
}

  @Override
  public void sendFeedback(String from,String name,String feedback) {
    SimpleMailMessage message = new SimpleMailMessage();
     message.setTo("feedback@noteapp.com");
     message.setSubject("New feedback from " + name);
     message.setText(feedback);
     message.setfrom(from);

    this.mailSender.send(message);
 }
}

这给出了错误

  

构造函数抛出异常;嵌套异常为   java.lang.NullPointerException       引起原因:java.lang.NullPointerException:null

它似乎是由Integer.parseInt()引起的,但是由于port是一个int值,因此如果不将其解析为int就不会设置该端口,

momate 回答:如何在春季启动反馈mailsender中解决此NumberFormatException问题

这两行中有错别字:

  private string GetWebService(string token,int testId,string phone)
    {
        try
        {
            var serviceUrl = "https://test.com/Soap";

            var httpWebRequest = (HttpWebRequest)WebRequest.Create(serviceUrl);
            httpWebRequest.ContentType = "text/xml";
            httpWebRequest.Method = "POST";

            using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
            {

                var xmlData = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:doc=\"http://test.com\">" +
                "   <soapenv:Header/>" +
                "   <soapenv:Body>" +
                "      <doc:AskForStackOverFlow>" +
                "         <doc:token>" + token + "</doc:token>" +
                "         <doc:testId>" + testId+ "</doc:testId>" +
                "         <doc:phone>" + phone + "</doc:phone>" +
                "         <doc:startTime>" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "</doc:startTime>" +
                "      </doc:AskForStackOverFlow>" +
                "   </soapenv:Body>" +
                "</soapenv:Envelope>";

                streamWriter.Write(xmlData);
            }

            var xmlResult = "";
            var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
            {
                xmlResult = streamReader.ReadToEnd();
            }

            if (string.IsNullOrEmpty(xmlResult))
                return "";


            var result = "";
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(xmlResult);
            XmlNodeList nodes = doc.GetElementsByTagName("ns1:AskForStackOverFlowResult");
            foreach (XmlNode item in nodes)
            {
                result = item.InnerText;
            }

            return result;

        }
        catch (Exception ex)
        {
            return ex.Message;
        }
    }

应为 spring.mail.port spring.mail.username

如果不存在环境属性,则将它们解析为null,为您提供mailSender.setPort(Integer.parseInt(environment.getProperty("string.mail.port"))); mailSender.setUsername(environment.getProperty("string.mail.username")); 中的NPE

本文链接:https://www.f2er.com/3138591.html

大家都在问