在Vivek Pandey's Blog 和 學習Java6(一) WebServices(3)在tomcat中發布文章中 簡單地整理開發 Webservice 的 Server 端和 Client 端程式的過程, 以及如何佈屬到 Tomcat Server上:
public class WebServiceStarter extends HttpServlet { private static final long serialVersionUID = 5870534239093709659L; public WebServiceStarter() { super(); } public void destroy() { super.destroy(); } public void init() throws ServletException{ System.out.println("\nStarting Calculator Service ......\n"); try { Endpoint.publish("http://localhost:8088/calculator", new Calculator()); } catch (Exception e) { System.out.println("Caught Exception: " + e.toString()); } System.out.println("\nCalculator Service is OK!\n"); } } 在 Endpoint.publish 的部份,原本以為 Port 的設定應該與 Tomcat 的預設值 8080 一樣,但是在啟動 Tomcat 的時候發現會跟 Tomcat 搶 8080 Port,所以可以改成其它的port 加法的 Service:Calculator.java import javax.jws.WebMethod; import javax.jws.WebService; import javax.jws.soap.SOAPBinding; @WebService(targetNamespace = "http://localhost/sample") @SOAPBinding(style = SOAPBinding.Style.RPC) public class Calculator { @WebMethod public int add(int a, int b) { return a+b; } }
程式編譯好後,在 Tomcat 的 webapps 目錄下建立一個 Service 的目錄,如: sample,其內在建立 WEB-INF 目錄,在此目錄裡建立 web.xml:
http://localhost:8088/calculator?wsdl CalculatorApp.java class CalculatorApp { public static void main(String args[]){ /** * Instantiate the generated Service */ CalculatorService service = new CalculatorService(); /** * Get the port using port getter method generated in CaculatorService */ Calculator calculatorProxy = service.getCalculatorPort(); /** * Invoke the remote method */ int result = calculatorProxy.add(10, 20); System.out.println("Sum of 10+20 = "+result); } } 編譯,執行,結果應該是:Sum of 10+20 = 30 |
- Jun 05 Sat 2010 04:14
JAVA 6 把 Webservice 變簡單 撰寫 教學
全站熱搜
留言列表