24h購物| | PChome| 登入
2006-06-19 14:11:02| 人氣406| 回應0 | 上一篇 | 下一篇

Sample code: To invoke web service in Axis2

推薦 0 收藏 0 轉貼0 訂閱站台

package webservice;
import javax.xml.soap.*;
import javax.xml.parsers.*;
import javax.xml.namespace.QName;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.xml.transform.dom.DOMSource;
import org.w3c.dom.Document;
import java.util.Iterator;
import java.net.URL;
import java.io.File;

public class WSRequest {
public static void main(String[] args) {
try {
SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
SOAPConnection connection = soapConnectionFactory.createConnection();
MessageFactory factory = MessageFactory.newInstance();
SOAPMessage message = factory.createMessage();
SOAPHeader header = message.getSOAPHeader();
SOAPBody body = message.getSOAPBody();
SOAPEnvelope envelope = message.getSOAPPart().getEnvelope();
envelope.setEncodingStyle(URI_ENCODING);
header.detachNode();


QName bodyName = new QName("http://axisversion.sample/xsd";, "getVersion", "m");
SOAPBodyElement bodyElement = body.addBodyElement(bodyName);
File dataFile = new File("d:\temp\MCD_sample.xml");
FileDataSource dataSource = new FileDataSource(dataFile);
DataHandler dataHandler = new DataHandler(dataSource);
AttachmentPart attachment = message.createAttachmentPart(dataHandler);
attachment.setContentId("mcd");
message.addAttachmentPart(attachment);
URL endpoint = new URL("http://ltrichard/Windchill/servlet/services/version";);
String authString = "username:password";
String auth = "Basic " + new sun.misc.BASE64Encoder().encode(authString.getBytes());
message.getMimeHeaders().addHeader("Authorization", auth);
System.out.println(endpoint.getProtocol() + "://" + endpoint.getHost() + endpoint.getPath() + "n" + "Authorization:" + auth);
SOAPMessage response = connection.call(message, endpoint);
connection.close();
SOAPBody soapBody = response.getSOAPBody();
System.out.println("response===" + response.getSOAPBody().getTextContent());
} catch (Exception ex) {
ex.printStackTrace();
}
}
}

台長: Richard
人氣(406) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 不分類 | 個人分類: Java |

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文