您的位置:首页 > 其它

如何在web应用中使用Axis2

2016-10-13 15:07 375 查看
Axis2可以处理WSDL并生成java代码,在服务端端称为Skeletons,在客户端称为Stubs。

Axis2的repsository是WEB-INF。axis2.xml是全局配置文件,在WEB-INF/conf/下。

第一件事:向web.xml中添加Axis2 Servlet

<web-app>
<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>
第二件事:编写服务
public Book[] getBooks() {
return new Book[]{onlyBook};
}

public Book findBook(String isbn) {
if (isbn.equals(onlyBook.getIsbn()))
return onlyBook;

return null;
}

上面是BookService.java中的一部分。
第三件事:编写服务的部署描述文件

<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">samples.demo.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>

可以使用RPCMessageReceiver部署POJO,也可以给服务指定一个schema。
第四件事:是否创建aar后缀文件?

aar文件用于hot deployment和服务隔离,但我们这里是webapp内部使用Axis2,所以使用Exploded deployment,也就是说我们要在WEB-INF下创建:

\---WEB-INF
| web.xml
|
\---services
\---BookService
\---META-INF
services.xml

当你把这webapp放在容器中起动时,你可以通过访问: http://yourhost:port/projectName/services/BookService?wsdl
查看这个服务的wsdl。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: