2016-09-06 153 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