Eclipse+tomcat6.0配置SOAP服务的方法
来源:互联网 发布:恶搞锁屏软件下载 编辑:程序博客网 时间:2024/06/06 04:28
因为SOAP出现的比较早,现在很多网上的例子都是tomcat4以前的版本,随着时代的发展,tomcat6.0已经出来了。所以很多东西都改变了。下面就是通过自己摸索和查阅资料来实现了高版本的tomcat下发布soap协议的一些要点。
1、先安装tomcat 和 eclipse这些就不多说了,SOAP可以下载soap-bin-2.3.1但是貌似其中的包还是不全,得需要自己找全。
2、下载activation.jar mail.jar soap.jar xerces.jar四个包并且加入到用户库中。并且在系统的环境变量中添加上去classpath = %TOMCAT_HOME%/lib/soap.jar;%TOMCAT_HOME%/lib
/mail.jar;%TOMCAT_HOME%/lib/activation.jar;%TOMCAT_HOME%/lib/xerces.jar;
3、在src中建立一个包如:cn.com.hb.soap.hello这个名字长度随自己,在里面建立一个HelloWorldClient.java HelloWorldServer.java文件
HelloWorldClient.java:
//通过soap服务调用HelloWorldService中的getMessage
package cn.com.hubin.soap.hello;
import java.net.URL;
import org.apache.soap.Constants;
import org.apache.soap.Fault;
import org.apache.soap.rpc.Call;
import org.apache.soap.rpc.Parameter;
import org.apache.soap.rpc.Response;
public class HelloWorldClient {
public static void main(String args[]) throws Exception {
String endPoint = "http://localhost:8080/soap/servlet/rpcrouter";
Call call = new Call();//创建一个RPC Call
call.setTargetObjectURI("urn:HelloWorldService");//远程的服务名
call.setMethodName("getMessage");//访问方法
call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC); //设置编码风格
URL url = new URL(endPoint); //SOAP服务的网址
//开始发送RPC请求,并返回服务器端的应答
Response resp = call.invoke(url, "");
//检查应答报文中是否有错,有错就打印出错信息,没错就打印到正确的返回值HelloWorld
if (resp.generatedFault())
{
Fault fault = resp.getFault();
System.out.println("The Following Error Occured: ");
System.out.println(" Fault Code = " + fault.getFaultCode());
System.out.println(" Fault String =" + fault.getFaultString());
}
else
{
Parameter result = resp.getReturnValue();
System.out.println(result.getValue());
}
}
}
HelloWorldServer.java:
package cn.com.hubin.soap.hello;
public class HelloWorldService {
public String getMessage()
{
return "Hello World!";
}
}
目前为止服务器代码和客户端代码就完成了。因为引用了一些SOAP的库,所以编写起来也很简单
4、在建立一个XML文件来注册SOAP服务。 这个xml文件存放位置随意跟工程没有联系,到时候一些操作只要进入其目录就可以了。建议和工程放到一起。
xml文件:
<?xml version="1.0"?>
<isd:service xmlns:isd="http://xml.apache.org/xml-soap/deployment" id="urn:HelloWorldService">
<isd:provider type="java" scope="Request" methods="getMessage">
<isd:java class="cn.com.chengang.soap.hello.HelloWorldService" static="false"/>
</isd:provider>
</isd:service>
代码说明:
l urn:HelloWorldService是服务名,它要求系统唯一。这里是取成和类名相同,你也可以取其他名称。
l getMessage是提供的服务方法,也就是类HelloWorldService的方法名
l <isd:java class=要求填入全类名(包名+类名)
5、发布SOAP服务在刚才xml目录下在cmd环境下输入如下代码:
java org.apache.soap.server.ServiceManagerClient http://127.0.0.1:8080/soap/servlet/rpcrouter deploy HelloWorld.xml
如果正确发布则不显示信息,如果错误则查看相应的错误。前提是Tomcat服务器要开启,否则总显示网络连接错误。
如果要取消发布打如下命令:
java org.apache.soap.server.ServiceManagerClient http://127.0.0.1:8080/soap/servlet/rpcrouter undelpoy "urn:HelloWorldService"
发布完毕后可以去 http://localhost:8080/soap/admin 中的list中查看注册的服务类。
这时候大部分工作已经完成了,下面的是最重要的工作了。
6、将HelloWorldServer.class(在你的java工程的bin目录下面)拷贝到tomcat中的webapps文件中的soap(我这里执行完以上步骤出现的发布文件夹)中WEB-INF/classes中,这里注意,你的class文件在原工程中嵌套的文件夹也要复制过来,比如我的是cn.com.hb.soap.hello所以嵌套的文件夹就是:cn/com/hb/soap/hello/HelloWorldServer.class 。网上说的放到common/classes中就是此步骤,因为新版本的tomcat没有了common这个文件夹
7、在Eclipse中运行客户端就会出现Hello Word的显示字符了。
- Eclipse+tomcat6.0配置SOAP服务的方法
- Eclipse+tomcat6.0配置SOAP服务的方法
- eclipse+Axis2配置开发SOAP服务
- Tomcat6.0中配置数据源的方法
- Tomcat6配置SSL的方法
- Tomcat6配置SSL的方法
- Tomcat6配置SSL的方法
- Tomcat6配置SSL的方法
- Tomcat6配置SSL的方法
- Tomcat6.0虚拟目录配置方法
- Tomcat6.0虚拟目录配置方法
- 两个tomcat6 两个服务的安装方法
- Tomcat6.0 源码 eclipse 简单配置
- Eclipse配置Tomcat6.0数据库连接池
- nutch1.2 eclipse tomcat6.0 配置
- Windows7下配置Eclipse和Tomcat6.0
- tomcat6免配置的安装方法~
- tomcat6.0的虚拟目录配置
- 二叉树遍历
- android程序更换图标无更新解决方案
- astyle使用方法记录
- POJ1979 Red and Black
- 浅析Lua中table的遍历
- Eclipse+tomcat6.0配置SOAP服务的方法
- Mac卸载cocos2d-x
- 500元快速搭建微小企业官网
- 关于ios8定位服务的新增特性
- Android Mars开发笔记
- View和ViewGroup的理解
- java下执行DOS命令,读取输出
- 关于在Xcode中如何使用快捷键整理代码
- EL表达式取Map,List值的总结