java SOAPHEADER的web service
更新時(shí)間:2008年12月10日 13:17:33 作者:
在業(yè)務(wù)中需要java代碼的客戶端請(qǐng)求,注意到需要發(fā)送SOAPHEADER,這里寫上方案。
c# JSON返回格式的WEB SERVICEhttp://www.dhdzp.com/article/16768.htm
我這里是利用axis創(chuàng)建類包的,首先下載axis的壓縮包,然后解壓,把a(bǔ)xis放到webapp下面。如果可以運(yùn)行,就OK了。
c#創(chuàng)建的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" http://s:9999/IUsers.asmx?wsdl
在目錄E:\cjjer下面有產(chǎn)生了一系列的java文件。
然后編譯這些java文件,注意,由于這樣產(chǎn)生的并沒有soapheader的請(qǐng)求,需要自己修改java文件:
打開*SoapStub.java這個(gè)文件,定位到
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;
這樣,就會(huì)加上SoapHeader了。提示類找不到的話請(qǐng)import org.apache.axis.message.*;
最后是編寫請(qǐng)求代碼了:
如果不發(fā)生異常,就OK了,發(fā)生異常的話自行處理。
編譯:
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
運(yùn)行測試:
我這里是利用axis創(chuàng)建類包的,首先下載axis的壓縮包,然后解壓,把a(bǔ)xis放到webapp下面。如果可以運(yùn)行,就OK了。
c#創(chuàng)建的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" http://s:9999/IUsers.asmx?wsdl
然后編譯這些java文件,注意,由于這樣產(chǎn)生的并沒有soapheader的請(qǐng)求,需要自己修改java文件:
打開*SoapStub.java這個(gè)文件,定位到
protected org.apache.axis.client.Call createCall() throws java.rmi.RemoteException
這個(gè)方法,然后再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;
這樣,就會(huì)加上SoapHeader了。提示類找不到的話請(qǐng)import org.apache.axis.message.*;
最后是編寫請(qǐng)求代碼了:
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.www.webs.*;
public class TestNet {
// main method
public static void main(String args[]) {
System.out.println("我要進(jìn)來了,嘎嘎");
try{
String endpoint= "http://s:9999/IUsers.asmx";
cjjerLocator locator = new cjjerLocator();//
locator.setMaintainSession(true);
cjjerSoap service = locator.getcjjerSoap();//獲得服務(wù)對(duì)象
Member objM= service.getUser(1);
System.out.println(objM.getName());
}
catch (Exception e) {
e.printStackTrace();
}
}
}
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.www.webs.*;
public class TestNet {
// main method
public static void main(String args[]) {
System.out.println("我要進(jìn)來了,嘎嘎");
try{
String endpoint= "http://s:9999/IUsers.asmx";
cjjerLocator locator = new cjjerLocator();//
locator.setMaintainSession(true);
cjjerSoap service = locator.getcjjerSoap();//獲得服務(wù)對(duì)象
Member objM= service.getUser(1);
System.out.println(objM.getName());
}
catch (Exception e) {
e.printStackTrace();
}
}
}
如果不發(fā)生異常,就OK了,發(fā)生異常的話自行處理。
編譯:
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
運(yùn)行測試:
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
相關(guān)文章
JBuilder2005實(shí)戰(zhàn)JSP之登錄頁面實(shí)現(xiàn)代碼[圖]
JBuilder2005實(shí)戰(zhàn)JSP之登錄頁面實(shí)現(xiàn)方法, 需要的朋友可以參考下2012-08-08
jsp頁面數(shù)據(jù)分頁模仿百度分頁效果(實(shí)例講解)
下面小編就為大家?guī)硪黄猨sp頁面數(shù)據(jù)分頁模仿百度分頁效果(實(shí)例講解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-07-07
在JSP頁面中動(dòng)態(tài)生成圖片驗(yàn)證碼的方法實(shí)例
今天小編就為大家分享一篇關(guān)于在JSP頁面中動(dòng)態(tài)生成圖片驗(yàn)證碼的方法實(shí)例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03
web前端超出兩行用省略號(hào)表示的實(shí)現(xiàn)方法
這篇文章主要介紹了web前端超出兩行用省略號(hào)表示的實(shí)現(xiàn)方法的相關(guān)資料,希望通過本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下2017-10-10
JSP對(duì)URL鏈接中的中文亂碼處理方法總結(jié)
這篇文章主要介紹了JSP對(duì)URL鏈接中的中文亂碼處理方法總結(jié),注意一下各瀏覽器的兼容顯示情況,需要的朋友可以參考下2016-01-01
JSP實(shí)現(xiàn)在線考試與成績?cè)u(píng)測
這篇文章主要為大家詳細(xì)介紹了JSP實(shí)現(xiàn)在線考試與成績?cè)u(píng)測,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10

