在现有系统中通过stubs方式部署 webservice
2011-03-03 14:31
453 查看
最近,我们的销售系统收到客户的要求,要求能为统一的DLR门户提供webservice接口服务,以期整合管理客户的系统入口。
客户提出
1.首先需要系统提供用户名和密码给portal
2.屏蔽账户的添加、修改、删除的功能
3.提供账户添加、删除、修改、获得所有账户的webservice接口,用于portal系统进行统一账户的管理
3.提供DLR清单列表的webservice,用于portal系统对dlr信息的维护
在现有的系统里头,如何改善方能达到目的呢?
采用AXIS框架
1、搭建AXIS环境
安装环境 J2SE SDK 1.4,weblogic8.1sp4,eclipse 3.2。
到 http://xml.apache.org 网站下载Axis1.4安装包。
将Axis相关包文件放在WEB-INF/lib目录下。
Axis可选的包(需另行下载):activation.jar; mail.jar; xmlsec-1.4.jar拷贝到WEB-INF目录下,生成客户端时候需要使用。
weblogic启动时加载以上jar包(startWeblogic.Cmd)
2、web.xml增加以下
<!---for web servicewebservice类服务的映射配置-->
<servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>
org.apache.axis.transport.http.AxisServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/AxisServlet</url-pattern>
</servlet-mapping>
<!---jws -->
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>*.jws</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
3、weblogic.xml增加以下
解决webservice8.1中所带的webservices.jar和axis中的saaj.jar冲突问题
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
4、启动weblogic web服务
访问 http://localhost:7002/services,显示AXIS框架的内置服务画面
AdminService
Version (wsdl)
getVersion
5、HelloWorld类
package cn.com.toyota.sales.webservice.hello;
public class SayHello {
public String getName(String name){
return "hello!" + name;
}
public int add(int a,int b){
return a + b;
}
}
6、编写wsdd文件
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="SayHello" provider="java:RPC">
<parameter name="className" value="cn.com.toyota.sales.webservice.hello.SayHello"/>
<parameter name="allowedMethods" value="*"/>
</service>
</deployment>
7、编辑一个deploy.bat
set Axis_Lib=D:/watool/cdist/lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%/
set Axis_Servlet=http://localhost:7002/AxisServlet
%Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% D:/watool/cdist/www/public_html/WEB-INF/deploy.wsdd
执行这个批处理文件
这时候,如果提示成功的话,访问http://localhost:7002/services 就会显示服务列表。
AdminService
Version (wsdl)
getVersion
SayHello (wsdl)
getName
add
8、生成客户端client stub文件
在浏览器上访问服务器端的服务,可以下载到WSDL文件,通过Axis的相关工具,可以自动从WSDL文件中生成Web Service的客户端代码。
WSDL2Java.bat:
set Output_Path=D:/work/projects/Eclipse_Projects/jdk14/cdist/src
set Package=cn.com.toyota.sales.webservice.hello
set Axis_Lib=D:/watool/cdist/lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Axis_Servlet=http://localhost:7002/AxisServlet
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% http://localhost:7002/services/SayHello?wsdl
9、Source生成
SayHello_PortType.java、SayHelloService.java、SayHelloServiceLocator.java、SayHelloSoapBindingStub.java
package cn.com.toyota.sales.webservice.hello;
public class SayHelloClient {
public void execute() throws Exception {
SayHelloService service = new SayHelloServiceLocator();
System.out.println("----------------------");
SayHello_PortType client = service.getSayHello() ;
String retValue = client.getName("No.1");
System.out.println(retValue);
}
/**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
SayHelloClient c = new SayHelloClient();
c.execute();
}
}
执行以上程序,结果显示:
----------------------
hello!No.1
好的,成功~
客户提出
1.首先需要系统提供用户名和密码给portal
2.屏蔽账户的添加、修改、删除的功能
3.提供账户添加、删除、修改、获得所有账户的webservice接口,用于portal系统进行统一账户的管理
3.提供DLR清单列表的webservice,用于portal系统对dlr信息的维护
在现有的系统里头,如何改善方能达到目的呢?
采用AXIS框架
1、搭建AXIS环境
安装环境 J2SE SDK 1.4,weblogic8.1sp4,eclipse 3.2。
到 http://xml.apache.org 网站下载Axis1.4安装包。
将Axis相关包文件放在WEB-INF/lib目录下。
Axis可选的包(需另行下载):activation.jar; mail.jar; xmlsec-1.4.jar拷贝到WEB-INF目录下,生成客户端时候需要使用。
weblogic启动时加载以上jar包(startWeblogic.Cmd)
2、web.xml增加以下
<!---for web servicewebservice类服务的映射配置-->
<servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>
org.apache.axis.transport.http.AxisServlet
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/AxisServlet</url-pattern>
</servlet-mapping>
<!---jws -->
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>*.jws</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
3、weblogic.xml增加以下
解决webservice8.1中所带的webservices.jar和axis中的saaj.jar冲突问题
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
4、启动weblogic web服务
访问 http://localhost:7002/services,显示AXIS框架的内置服务画面
And now... Some Services
AdminService (wsdl)AdminService
Version (wsdl)
getVersion
5、HelloWorld类
package cn.com.toyota.sales.webservice.hello;
public class SayHello {
public String getName(String name){
return "hello!" + name;
}
public int add(int a,int b){
return a + b;
}
}
6、编写wsdd文件
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="SayHello" provider="java:RPC">
<parameter name="className" value="cn.com.toyota.sales.webservice.hello.SayHello"/>
<parameter name="allowedMethods" value="*"/>
</service>
</deployment>
7、编辑一个deploy.bat
set Axis_Lib=D:/watool/cdist/lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%/
set Axis_Servlet=http://localhost:7002/AxisServlet
%Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% D:/watool/cdist/www/public_html/WEB-INF/deploy.wsdd
执行这个批处理文件
这时候,如果提示成功的话,访问http://localhost:7002/services 就会显示服务列表。
And now... Some Services
AdminService (wsdl)AdminService
Version (wsdl)
getVersion
SayHello (wsdl)
getName
add
8、生成客户端client stub文件
在浏览器上访问服务器端的服务,可以下载到WSDL文件,通过Axis的相关工具,可以自动从WSDL文件中生成Web Service的客户端代码。
WSDL2Java.bat:
set Output_Path=D:/work/projects/Eclipse_Projects/jdk14/cdist/src
set Package=cn.com.toyota.sales.webservice.hello
set Axis_Lib=D:/watool/cdist/lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Axis_Servlet=http://localhost:7002/AxisServlet
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% http://localhost:7002/services/SayHello?wsdl
9、Source生成
SayHello_PortType.java、SayHelloService.java、SayHelloServiceLocator.java、SayHelloSoapBindingStub.java
package cn.com.toyota.sales.webservice.hello;
public class SayHelloClient {
public void execute() throws Exception {
SayHelloService service = new SayHelloServiceLocator();
System.out.println("----------------------");
SayHello_PortType client = service.getSayHello() ;
String retValue = client.getName("No.1");
System.out.println(retValue);
}
/**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
SayHelloClient c = new SayHelloClient();
c.execute();
}
}
执行以上程序,结果显示:
----------------------
hello!No.1
好的,成功~
相关文章推荐
- 使用Loadrunner 调用Webservice接口测试优化总结(通过URL方式)
- Linux 环境下部署Hadoop 2.x,建议尝试64位系统下进行本地编译的安装方式
- 通过添加系统调用的方式遍历当前进程
- 在android系统通过makefile方式添加第三方jar包
- Windows Azure上通过挂载磁盘的方式修改Linux系统登录密码
- 如何通过HTTPS方式访问webservice
- iOS开发之iPhone通过get和post方式请求asp.net webservice
- J2EE通过tomcat部署的两种方式
- tomcat8 部署到Linux系统中,webService服务无法使用
- 欧洲议会通过伽利略全球卫星导航系统部署方案
- 如何使用SecureCRT6.6.2通过SSH方式登录Ubuntu系统?
- SpringBoot项目在window系统下以系统服务的方式部署jar包
- C# 通过WebService方式 IIS发布网站 上传文件到服务器的虚拟机下 详尽方法
- 通过Post方式调用webservice
- 在现有SSH项目中提供REST方式的WebService
- 如何通过HTTPS(SSL加密)方式访问webservice
- rsync通过服务的方式同步、linux系统日志、screen工具
- PHP下通过系统信号量加锁方式获取递增序列ID
- PHP下通过系统信号量加锁方式获取递增序列ID
- CentOS系统下通过源码方式安装wine