欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java SOAPHEADER的web service

程序员文章站 2023-12-02 20:10:58
c# json返回格式的web service我这里是利用axis创建类包的,首先下载axis的压缩包,然后解压,把axis放到webapp下面。如果可以运行,就ok了。&...
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" http://s: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.www.webs.*;

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