建立web service
1.建立dynamic web專案
a.new ->dynamic web project2.將專案加入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>
WTP也同時建立了web service。不過這並不是在axis2-web中而是在我們的WS應用程式中。<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>
不過Axis2的文件中有提到類似weblogic或是websphere這類J2EE的container有另外一種deploy方式,那是直接異動WS/WEB-INF/services/service.list,並使用工具產生.aar(Axis archive)檔,一同deploy,當然,這是另外一件事了…。後話
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
沒有留言 :
張貼留言