Websphere 下 发布webservice Websphere 下 开发 webservice

来源:互联网 发布:淘宝的白蜡木和红椿木 编辑:程序博客网 时间:2024/05/22 15:58

今天开发的项目需要用到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