我在的项目中使用到了webservice,使用的是axis2.
myeclipse5.5,axis1.4.1,tmcat5.5.27
首先,建立一个web项目,在lib中导入axis2的所有包。
修改web.xml。
如下:
-
<?xml?version="1.0"?encoding="ISO-8859-1"?>
- <!DOCTYPE?web-app
-
????PUBLIC?"-//Sun?Microsystems,?Inc.//DTD?Web?Application?2.3//EN"
-
????"http://java.sun.com/dtd/web-app_2_3.dtd">
- ????
- <web-app>
- ????<display-name>Apache-Axis2</display-name>
- ????<servlet>
- ????????<servlet-name>AxisServlet</servlet-name>
- ????????<display-name>Apache-Axis?Servlet</display-name>
-
????????<servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
- ????????<load-on-startup>1</load-on-startup>
- ????</servlet>????
- ??<servlet-mapping>
- ????<servlet-name>AxisServlet</servlet-name>
- ????<url-pattern>/services/*</url-pattern>
- ??</servlet-mapping>
- </web-app>
建立web服务类:
- package?com.axis.service;
-
public?class?BookService?{
-
????private?Book?onlyBook;
-
????public?BookService()?{
-
????????onlyBook?=?new?Book();
-
????????onlyBook.setAuthor("Dan?Diephouse");
-
????????onlyBook.setTitle("Using?Axis2");
-
????????onlyBook.setIsbn("0123456789");
- ????}
-
????public?Book[]?getBooks()?{
-
????????return?new?Book[]{onlyBook};
- ????}
-
????public?Book?findBook(String?isbn)?{
-
????????if?(isbn.equals(onlyBook.getIsbn()))
-
????????????return?onlyBook;
-
????????return?null;
- ????}
- }
- package?com.axis.service;
-
public?class?Book?{
-
????private?String?title;
-
????private?String?isbn;
-
????private?String?author;
-
????public?String?getIsbn()?{
-
????????return?isbn;
- ????}
-
????public?void?setIsbn(String?isbn)?{
-
????????this.isbn?=?isbn;
- ????}
-
????public?String?getTitle()?{
-
????????return?title;
- ????}
-
????public?void?setTitle(String?title)?{
-
????????this.title?=?title;
- ????}
-
????public?String?getAuthor()?{
-
????????return?author;
- ????}
-
????public?void?setAuthor(String?author)?{
-
????????this.author?=?author;
- ????}
- }
写webservices的配置文件:services.xml
- services.xml
- <serviceGroup>
-
????<service?name="BookService"
-
?????????????targetNamespace="http://ws.apache.org/axis2/samples/book/">
- ????????<description>
- ????????????Book?sample?service
- ????????</description>
-
????????<schema?schemaNamespace="http://ws.apache.org/axis2/samples/book/xsd/"/>
-
????????<parameter?name="ServiceClass"?locked="false">com.axis.service.BookService</parameter>
-
????????<operation?name="getBooks">
-
????????????<messageReceiver?class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
- ????????</operation>
-
????????<operation?name="findBook">
-
????????????<messageReceiver?class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
- ????????</operation>
- ????</service>
- </serviceGroup>
项目和axis的结构如下图:
?

最后,将项目部署到服务器,运行。
访问:http://localhost:8080/AxisTest/services/BookService?wsdl,可以看到服务的wsdl描述。