建立web service
1.建立dynamic web專案
a.new ->dynamic web project

2.將專案加入server

3.啟動server。
原則上是會有一些error,不過那是後話了…如果可以的話,畫面應該會是這樣…

4.建立需要的class
既然是hellow world,當然就是hello world ws…public class SayHellow {
    public SayHellowResponse say(SayHellowRequest request) {
        String userid = request.getUserid();
        SayHellowResponse response = new SayHellowResponse();
        response.setUserid(userid);
        response.setResponse("Hi");
        return response;
    }
}
public class SayHellowRequest {
    private String userid;
    public String getUserid() {
        return userid;
    }
    public void setUserid(String userid) {
        this.userid = userid;
    }
    public void setId(String id) {
        this.id = id;
    }
}
public class SayHellowResponse {
    private String userid;
    private String response;
    public void setUserid(String userid) {
        this.userid = userid;
    }
    public void setResponse(String response) {
        this.response = response;
    }
    public String getResponse() {
        return response + ", " + userid;
    }
}
5.建立web service

打開瀏覽器,web service已經被deploy 上去了。

「花」生了什麼事?
WTP在我們的WS應用程式中,加入了一個axis2-web。這是讓我們方便監控、處理、操作、管理(但不是使用)web service的UI介面。不過Axis2好膽在我的程式裡面加了這種不應該放在應該程式中的東西…。
<welcome-file-list>
...
    <welcome-file>/axis2-web/index.jsp</welcome-file>
  </welcome-file-list>
...
  <servlet>
    <display-name>Apache-Axis Servlet</display-name>
    <servlet-name>AxisServlet</servlet-name>
    <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
  </servlet>
...
  <servlet-mapping>
    <servlet-name>AxisServlet</servlet-name>
    <url-pattern>/services/*</url-pattern>
  </servlet-mapping>
<service name="SayHellow" >
    <Description>
        Please Type your service description here
    </Description>
    <messageReceivers>
        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
        <messageReceiver  mep="http://www.w3.org/2004/08/wsdl/in-out"  class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
    </messageReceivers>
    <parameter name="ServiceClass" locked="false">hellowworld.ws.SayHellow</parameter>
</service>後話
ASIS2 1.5內綁rampart,因此光使用WTP啟動server時會有exception,要再額外掛幾個檔。不過即使沒有這些檔,service還是可以正常執行。rampart-core-1.5.jar
rampart-trust-1.5.jar 
rampart-policy-1.5.jar
wss4j-1.5.8.jar
沒有留言:
張貼留言