2016-07-07 52 views

回答

0

據我所知,Jax-ws使用POST來接收呼叫。你將不得不建立一個XML請求來POST到你的URL。事情是這樣的:

POST /ws/hello HTTP/1.1 
SOAPAction: "" 
Accept: text/xml, multipart/related, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 
Content-Type: text/xml; charset=utf-8 
User-Agent: Java/1.6.0_13 
Host: localhost:9999 
Connection: keep-alive 
Content-Length: 224 

<?xml version="1.0" ?> 
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> 
    <S:Body> 
     <ns2:getHelloWorldAsString xmlns:ns2="http://ws.mkyong.com/"> 
      <arg0>test</arg0> 
     </ns2:getHelloWorldAsString> 
    </S:Body> 
</S:Envelope> 
0

使用的java.net.URL和HttpURLConnection類或HttpsURLConnection的

看樣品

URL url = new URL("http://yourwebservices.soap.wsdl"); 
    HttpURLConnection connectionWS = (HttpURLConnection) ur.openConnection(); 
    //not forget this 
    connectionWS.setDoOutput(true); 
    connectionWS.setDoInput(true); 
    connectionWS.setRequestMethod("POST"); 
    connectionMinervaWS.setRequestProperty("Content-Type", "text/xml; charset=utf-8"); 

    StringBuilder envelopeSoapRequest = new StringBuilder() 
    //make the xml request 

    //now you send to service 
    OutputStreamWriter osw = new OutputStreamWriter(connectionWS.getOutputStream()); 
    osw.write(envelopeSoapRequest.toString()); 
    osw.flush(); 

    //now you can take response 
    BufferedReader wsReader = null; 
    StringBuilder envelopeSoapResponse = new StringBuilder(); 
    wsReader = new BufferedReader(new InputStreamReader( 
    connectionWS.getInputStream(), StandardCharsets.UTF_8)); 
    String line = wsReader.readLine(); 

    while (line != null) { 
     envelopeSoapResponse.append(line); 
     line = wsReader.readLine(); 
    }