2016-09-06 151 views
0

我最近关闭了Java,所以也许我的代码中有很多愚蠢的错误。我的目标是创建一个向服务器发送SOAP请求的servlet。我使用this example来创建一个SOAP客户端。我将它添加到我的servlet类中。它明显不起作用。你可以给我提示,以改进这个servlet并理解servlet的逻辑吗?Java Servlet SOAP请求

这里的是相关片段:

public class SOAPRequest extends HttpServlet { 
    private static final long serialVersionUID = 1L; 
    public SOAPRequest() { 
     super(); 
     // TODO Auto-generated constructor stub 
    } 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
     SOAPConnectionFactory myFct = SOAPConnectionFactory.newInstance(); 
     SOAPConnection myCon = myFct.createConnection(); 
     MessageFactory msgFct = MessageFactory.newInstance(); 
     SOAPMessage msg = msgFct.createMessage(); 
     SOAPPart mySPart = msg.getSOAPPart(); 
     SOAPEnvelope myEnvp = mySPart.getEnvelope(); 
     SOAPBody body = myEnvp.getBody(); 

     Name bodyName = envelope.createName("GetLastTradePrice", "m", "http://eztrade.com"); 
     SOAPBodyElement gltp = body.addBodyElement(bodyName); 
     Name myContent = envelope.createName("symbol"); 
     SOAPElement mySymbol = gltp.addChildElement(myContent); 
     mySymbol.addTextNode("SUNW"); 

     message.saveChanges(); 

     URLEndpoint endPt = new URLEndpoint("http://eztrade.com//quotes"); 

     SOAPMessage reply = myCon.call(message, endPt); 
     myCon.close(); 
    } 
+0

什么哟意思是“不工作”? –

+0

我得到错误500 - Servlet的执行引发了异常 java.lang.Error的:未解决编制问题: 信封不能得到解决 信封不能得到解决 消息无法得到解决 URLEndpoint不能被解析为一个类型 URLEndpoint不能得到解决一类 消息不能被解析为一个可变 SOAPRequest.doGet(SOAPRequest.java:44) javax.servlet.http.HttpServlet.service(HttpServlet.java:622) javax.servlet.http.HttpServlet.service( HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) – Wallcraft

回答

0

你有在类路径所需的jar文件?代码建议您使用SAAJ。请获取最新的jar文件,它应该工作。

<!-- https://mvnrepository.com/artifact/org.apache.axis/axis-saaj --> 
<dependency> 
    <groupId>org.apache.axis</groupId> 
    <artifactId>axis-saaj</artifactId> 
    <version>1.4</version> 
</dependency> 
+0

我已经导入javax.xml.soap,如果我没有得到th e SAAJ我无法导入它,对吗? – Wallcraft

+0

是的,你可以。另外检查这个链接https://theholyjava.wordpress.com/2010/11/19/soapsaajxml-issues-when-migrating-to-java-6-with-axis-1-2/ –

+0

所以我只是要下载这个saaj .jar并导入到我的项目? – Wallcraft