Now build and run the client by typing "ant run.client" at a console in the Axis2_HOME/samples/quickstartjibx directory.
You should get the following as output:
42
done
For more information on using JiBX with Axis2, see the JiBX code generation integration details.
---------------------五个创建服务端、四个创建客户端的方式---END----------------------
个人倾向于服务器端采用Deploying POJOs方式创建,可自动生成WSDL,客户端采用WSDL2JAVA工具,使用如下命令:
C:\axis2\bin>wsdl2java.bat -uri http://localhost:8080/axis2/services/HelloWorldService.aar?wsdl -o C:\JAVA\eclipse\workspace\HelloWorldClient -p test.joeyta
-uri WSDL 的 uri 位置.
-o 輸出 stub classes 的位置. 預設會增加 src 目錄.
-p 設定輸出 stub classes 使用的 package.
什么是stub:j2ee里面的stub是这样说的..为屏蔽客户调用远程主机上的对象,必须提供某种方式来模拟本地对象,这种本地对象称为存根(stub),存根负责接收本地方法调用,并将它们委派给各自的具体实现对象。
创建了类HelloWorldServiceStub类,应该是ADB创建客户端的方式,然后编写客户端类HelloWorldClient.java
package test.joeyta;
import test.joeyta.HelloWorldServiceStub.EchoResponse;
public class HelloWorldClient {
public static void main(String[] args) throws Exception {
HelloWorldServiceStub stub = new HelloWorldServiceStub();
HelloWorldServiceStub.Echo request = new HelloWorldServiceStub.Echo();
request.setValue("Hello world, Joeyta");
EchoResponse response = stub.echo(request);
System.out.println("Response : " + response.get_return());
}
}
AXIS集成
为了让我们的WEB应用程序支持Web服务功能,我们需要将AXIS集成到我们的应用程序中。集成AXIS很简单,首先需要拷贝AXIS用到的几个JAR包文件,这些文件都在[AXIS]\WEB-INF\lib目录下,将这些文件拷贝到我们自己的应用目录下的WEB-INF\lib。另外如果你用的不是TOMCAT服务器那就需要拷贝activation.jar,这个JAR文件可以在[TOMCAT]\common\lib目录下找到!
拷贝完JAR文件后就是web.xml的配置了,只需要把AXIS中的web.xml中的配置信息添加到我们自己应用程序中的web.xml中即可。最重要的是下面的内容:
<servlet>
<servlet-name>AxisServlet</servlet-name>
<display-name>Apache-Axis Servlet</display-name>
<servlet-class>
org.apache.axis.transport.http.AxisServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>*.jws</url-pattern>
</servlet-mapping>
<mime-mapping>
<extension>wsdl</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>
<mime-mapping>
<extension>xsd</extension>
<mime-type>text/xml</mime-type>
</mime-mapping>
--------------------------------other notes about axis2----------------------------------
Axis2是常用的一种SOAP engine,但是它提供的wsdl2java的命令行工具的说明比较简单,没有具体的例子。下面举出几个例子:
从最简单的开始 ,-uri 指定wsdl文件
> WSDL2Java -uri currencyConvert.wsdl
-d 使用不同的data binding方法
> WSDL2Java -uri currencyConvert.wsdl -d xmlbeans
-a 生成异步的方法
> WSDL2Java -uri currencyConvert.wsdl -a
-t 生成测试case
> WSDL2Java -uri currencyConvert.wsdl -t ...
稍微复杂一些的,-p可以指定生成的package,-o指定生成的路径,-ss生成服务端代码
wsdl2java -uri ../wsdl/currencyConvert.wsdl -o ../gen_src -ss -sd -g -p foo.bat
再复杂一些,-ns2p 将namespace进行替换,多个中间用逗号隔开
wsdl2java -uri ../wsdl/currencyConvert.wsdl -o ../wsdl/gen_src -ss -sd -g -p com.foo.bar -ns2p "http://www.xxx.yyy.com/zzz/v1.0"=com.foo.bar,"http://www.xxx.yyy.com/ddd/v1.1"=com.foo.bar.goo