首页 > 编程 > JSP > 正文

java SOAPHEADER的web service

2024-09-05 00:21:21
字体:
来源:转载
供稿:网友
在业务中需要java代码的客户端请求,注意到需要发送SOAPHEADER,这里写上方案。

c# JSON返回格式的WEB SERVICE
我这里是利用axis创建类包的,首先下载axis的压缩包,然后解压,把axis放到webapp下面。如果可以运行,就OK了。
c#创建的webservice自带的wsdl的,直接可以加上?wsdl访问,然后利用axis生成类:


java -classpath ".;commons-logging.jar;axis.jar;commons-discovery.jar;jaxrpc.jar;wsdl4j.jar;saaj.jar;jaxrpc.jar;mail.jar" org.apache.axis.wsdl.WSDL2Java -o "E:/cjjer" :9999/IUsers.asmx?wsdl

在目录E:/cjjer下面有产生了一系列的java文件。

然后编译这些java文件,注意,由于这样产生的并没有soapheader的请求,需要自己修改java文件:

打开*SoapStub.java这个文件,定位到

protected org.apache.axis.client.Call createCall() throws java.rmi.RemoteException

这个方法,然后再return之前写上


SOAPHeaderElement head = new SOAPHeaderElement(new PrefixedQName(new javax.xml.namespace.QName("http://www.cjjer.com/webs/", "ReqHeader")));
head.setActor(null);
try{
head.addChildElement("userName").addTextNode("cjjer");
head.addChildElement("password").addTextNode("000000");
head.setMustUnderstand(true);
}catch(Exception e){
System.out.println(" soapheader Exception == ");
e.printStackTrace();
}
_call.addHeader(head);

return _call;



这样,就会加上SoapHeader了。提示类找不到的话请import org.apache.axis.message.*;

最后是编写请求代码了:

import java.io.*;
import java.sql.*;
import java.awt.*;
import javax.xml.namespace.*;
import java.awt.event.*;
import java.net.URL;
import org.apache.axis.client.*;
import com.cjjer.*;

public class TestNet {
// main method
public static void main(String args[]) {
System.out.println("我要进来了,嘎嘎");
try{
String endpoint= "http://s:9999/IUsers.asmx";
cjjerLocator locator = new cjjerLocator();//
locator.setMaintainSession(true);
cjjerSoap service = locator.getcjjerSoap();//获得服务对象
Member objM= service.getUser(1);
System.out.println(objM.getName());
}
catch (Exception e) {
e.printStackTrace();

}


}
}


如果不发生异常,就OK了,发生异常的话自行处理。
编译:


javac -cp "E:/tomcat6/webapps/axis/WEB-INF/lib/commons-logging.jar;E:/tomcat6/webapps/axis/WEB-INF/lib/axis.jar;E:/tomcat6/webapps/axis/WEB-INF/lib/commons-discovery.jar;E:/tomcat6/webapps/axis/WEB-INF/lib/jaxrpc.jar;E:/tomcat6/webapps/axis/WEB-INF/lib/wsdl4j.jar;E:/tomcat6/webapps/axis/WEB-INF/lib/saaj.jar;E:/tomcat6/webapps/axis/WEB-INF/lib/jaxrpc.jar;E:/tomcat6/webapps/axis/WEB-INF/lib/mail.jar;"com/cjjer/www/webs/*.java -Xlint:unchecked



运行测试:

java -cp "E:/tomcat6/webapps/axis/WEB-INF/lib/commons-logging.jar;E:/tomcat6/webapps/axis/WEB-INF/lib/axis.jar;E:/tomcat6/webapps/axis/WEB-INF/lib/commons-discovery.jar;E:/tomcat6/webapps/axis/WEB-INF/lib/jaxrpc.jar;E:/tomcat6/webapps/axis/WEB-INF/lib/wsdl4j.jar;E:/tomcat6/webapps/axis/WEB-INF/lib/saaj.jar;E:/tomcat6/webapps/axis/WEB-INF/lib/jaxrpc.jar;E:/tomcat6/webapps/axis/WEB-INF/lib/mail.jar;" TestNet

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表