今天开发的项目需要用到webservice,我们的项目的中间件是Webshpere.
于是乎我就做个webservice的demo呗。
我没多想,就打开了内存杀手工具,WID(websphere integration Developer).
因为在IBM的中间件上搞啥,用IBM的开发工具,那集成的是的确强劲的。
开发webservice无非就是4个步骤。
1,写个java文件,写几个不是static的接口,到时候这个类就需要发布成webservice了。
2,根据java文件生成WSDL文件呗。
3,发布呗
4,测试呗。
好,那下面我们开始吧
1,首先在WID下面创建一个Test的Java项目。并且建一个类 net.chinacsharp.HelloWorld.java,具体代码内容见下图。
2,然后我们新建个WebService的项目吧。webservice对应的java代码就选择我刚才建的那个HelloWorld.java
服务的实现选择
然后下一步,下一步下一步,都缺省的下去。
然后在服务器启动页面点击“启动服务器”按钮。
3,然后会生成项目,如下图所示,生成了webservice.xml,HelloWorld.wsdl,以及其它几个配置文件。
同时生成了Clent端调用的java代码。
4,然后修改下面的代码,修改生成的客户机的HelloWorldServiceLocator.java的代码。
把那个 上图选中的那个地址改为下面的地址,因为上面的是https的地址,调用会掉不通。
// 用于获取 helloWorld 的代理类
private final java.lang.String helloWorld_address =" http://localhost:9080/WebServiceProject/services/HelloWorld";
5,然后新建Test.java 如下图所示
然后运行这个main函数,会输出
“Hello,this is my first webservice,welcome keyboardsun”。说明发布和调用都成功了。
但是到这里,我们其实只成功了一半,因为我们在项目中发布的时候,webservice是需要跟项目打包在一起发布的,那怎么办呢。
我们新建一个WEB项目叫MyWeb吧,用于一会发布的时候,作为刚才新建的helloworld的发布载体。
如下图。
然后我们把WebServiceProject里面的WEB-INF下面的所有文件都copy到MyWeb的工程的WEB-INF下面。直接覆盖吧。
然后需要把web.xml的
<display-name>WebServiceProject</display-name>
改为 <display-name>MyWeb</display-name>
把wsdl/HelloWorld.wsdl的改为
<wsdlsoap:address location="https://localhost:9443/MyWeb/services/HelloWorld"/>
然后我们把Test的JAVA工程导出为Test.jar,
把MyWeb的工程导出为MyWeb.war,然后把Test.jar放到MyWeb.war的WEB-INF/lib目录下面。
然后我们发布。
这里发布的时候,上下文的根要写成MyWeb。
然后发布成功,启动MyWeb。这里webservice已经发布成功了。
我们回到WID,写个main函数测试下发布的webservice。
我们右键HelloWorld.wsdl--
如图
然后WID会自动生成客户机代码。很人性化噢。IBM的东西强劲,可惜就是内存杀手。
然后我们修改下代码,如下图.
然后我们新建测试类
public static void main(String[] args) throws RemoteException {
HelloWorldProxy proxy = new HelloWorldProxy();
HelloWorld hello = proxy.getHelloWorld();
String result = hello.hello("keyboardsun");
System.out.println(result);
}
运行Main函数,输出是正确的,说明我们新的webservice发布成功。
其实也就是几个配置文件加上一个wsdl文件,就把一个普通的类的调用用webservice给包装了下。然后中间件通过webservice的包装工具转化调用。
如果你没有WID工具没关系,我这里提供源代码下载。可以下载分析下。
WSDL文件可以用xfire生成的嘛,其它几个IBM的配置文件可以参看附件下载。
作者 keyboardsun
转载请标明出处:http:/blog.csdn.net/keyboardsun