<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    一路拾遺
    Collect By Finding All The Way ......
    posts - 81,comments - 41,trackbacks - 0
    首先說一下使用AXIS調用WSDL文件時需要的JAR包:
    (1)axis    其中包括axis.jar、axis-ant.jar、commons-discovery-0.2.jar、commons-logging-1.0.4.jar、jaxrpc.jar、log4j-1.2.8.jar、log4j.properties、saaj.jar、wsdl4j-1.5.1.jar。http://www.apache.org/dyn/closer.cgi/ws/axis/
    (2)javamail    mail.jar。http://java.sun.com/products/javamail/
    (3)jaf    activation.jar。http://java.sun.com/javase/technologies/desktop/javabeans/jaf/downloads/index.html
    一、WSDL文件內容
    該實例采用的WSDL文件是使用AXIS創建的Web服務,功能是輸入字符串,返回歡迎語句。對于遠程(其他服務器)的Web服務的調用一直不成功,原本想調用下DictionaryService.wsdl,可是運行時總是返回“ faultString: org.xml.sax.SAXException: Bad envelope tag:  definitions”錯誤,實在無奈、、、Hello.jws的內容如下:
    <?xml version="1.0" encoding="UTF-8" ?> 
    <wsdl:definitions targetNamespace="http://localhost:8080/axis/Hello.jws" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost:8080/axis/Hello.jws" xmlns:intf="http://localhost:8080/axis/Hello.jws" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <!-
    WSDL created by Apache Axis version: 1.4
    Built on Apr 22, 2006 (06:55:48 PDT)
      --
    > 
    <wsdl:message name="helloResponse">
      
    <wsdl:part name="helloReturn" type="xsd:string" /> 
      
    </wsdl:message>
    <wsdl:message name="helloRequest">
      
    <wsdl:part name="name" type="xsd:string" /> 
      
    </wsdl:message>
    <wsdl:portType name="Hello">
    <wsdl:operation name="hello" parameterOrder="name">
      
    <wsdl:input message="impl:helloRequest" name="helloRequest" /> 
      
    <wsdl:output message="impl:helloResponse" name="helloResponse" /> 
      
    </wsdl:operation>
      
    </wsdl:portType>
    <wsdl:binding name="HelloSoapBinding" type="impl:Hello">
      
    <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" /> 
    <wsdl:operation name="hello">
      
    <wsdlsoap:operation soapAction="" /> 
    <wsdl:input name="helloRequest">
      
    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://DefaultNamespace" use="encoded" /> 
      
    </wsdl:input>
    <wsdl:output name="helloResponse">
      
    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/axis/Hello.jws" use="encoded" /> 
      
    </wsdl:output>
      
    </wsdl:operation>
      
    </wsdl:binding>
    <wsdl:service name="HelloService">
    <wsdl:port binding="impl:HelloSoapBinding" name="Hello">
      
    <wsdlsoap:address location="http://localhost:8080/axis/Hello.jws" /> 
      
    </wsdl:port>
      
    </wsdl:service>
      
    </wsdl:definitions>

    二、調用Web服務
    據說有三種方法,參見:http://blog.csdn.net/boy_wh520/archive/2007/05/09/1601756.aspx
    http://www.ibm.com/developerworks/cn/webservices/ws-startaxis/index.html
    這里只介紹一下第一種方法,代碼如下:
    package wsdl;

    import org.apache.axis.client.Call;
    import org.apache.axis.client.Service;

    public class CallService {

        
    public static void main(String[] args) {

            
    try {
                           
                String endpoint 
    = "http://localhost:8080/axis/Hello.jws";

                
    //調用過程
                Service service = new Service();
                
                Call call 
    = (Call) service.createCall();
                
                call.setTargetEndpointAddress(
    new  java.net.URL(endpoint));
                
                call.setOperationName(
    "hello");//WSDL里面描述的操作名稱
                
                call.addParameter(
    "helloRequest", org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);//操作的參數
                
                call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
    //設置返回類型  
                
                call.setUseSOAPAction( 
    true );
                
                
    //給方法傳遞參數,并且調用方法
                String temp = "Tom";
                Object[] obj 
    = new Object[]{temp};
                String result 
    = (String)call.invoke(obj);
                
                System.out.println(
    "Result is : "+result);
                }
     catch (Exception e) {
                    e.printStackTrace();
                }

        }

    }


    posted on 2008-08-04 21:48 胖胖泡泡 閱讀(9684) 評論(3)  編輯  收藏

    FeedBack:
    # re: 使用AXIS調用WSDL描述的Web服務[未登錄]
    2008-09-07 22:15 | dong
    你這個問題解決了沒?我也遇到了,不知道改如何做,如果解決了發心信息到我郵箱吧,hsd6181000@163.com  回復  更多評論
      
    # re: 使用AXIS調用WSDL描述的Web服務
    2008-09-08 09:25 | 胖胖泡泡
    問題已解決 參見 使用AXIS調用WSDL描述的Web服務(續) http://m.tkk7.com/mrcold/archive/2008/08/05/220121.html  回復  更多評論
      
    # re: 使用AXIS調用WSDL描述的Web服務
    2009-06-17 22:48 | xc
    @胖胖泡泡
    這里是加?WSDL的目的
    “?WSDL: Obtaining WSDL for deployed services
    When you make a service available using Axis, there is typically a unique URL associated with that service. For JWS files, that URL is simply the path to the JWS file itself. For non-JWS services, this is usually the URL "http://<host>/axis/services/<service-name>".

    If you access the service URL in a browser, you'll see a message indicating that the endpoint is an Axis service, and that you should usually access it using SOAP. However, if you tack on "?wsdl" to the end of the URL, Axis will automatically generate a service description for the deployed service, and return it as XML in your browser (try it!). The resulting description may be saved or used as input to proxy-generation, described next. You can give the WSDL-generation URL to your online partners, and they'll be able to use it to access your service with toolkits like .NET, SOAP::Lite, or any other software which supports using WSDL.

    You can also generate WSDL files from existing Java classes (see Java2WSDL: Building WSDL from Java).

      回復  更多評論
      

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 久久九九久精品国产免费直播| 亚洲精品无码专区在线| 95老司机免费福利| 亚洲AV区无码字幕中文色| 亚洲色欲久久久综合网| 中文字幕手机在线免费看电影| 免费一级毛片一级毛片aa| 成人精品综合免费视频| 国产成人人综合亚洲欧美丁香花 | 最近免费视频中文字幕大全| 亚洲精品无码成人片在线观看| 最近免费最新高清中文字幕韩国 | 亚洲第一精品在线视频| 3344在线看片免费| 亚洲中文无码卡通动漫野外| 日韩亚洲国产综合高清| 亚洲人成日本在线观看| 春暖花开亚洲性无区一区二区| 精品视频一区二区三区免费| 亚洲国产精品久久久久网站| 97久久免费视频| 亚洲日韩看片无码电影| 亚洲女同成人AⅤ人片在线观看| 一区二区在线免费视频| 亚洲第一区香蕉_国产a| 免费a级毛片无码a∨蜜芽试看 | 亚洲日韩在线观看| 三年片免费高清版| 亚洲综合一区二区| 小小影视日本动漫观看免费| 国产精品免费久久久久久久久| 亚洲国产精品婷婷久久| 日韩免费视频在线观看| 中国一级特黄高清免费的大片中国一级黄色片 | 特级av毛片免费观看| 日本红怡院亚洲红怡院最新 | 国产成人在线免费观看| 日批视频网址免费观看| 亚洲午夜无码久久久久软件 | 4480yy私人影院亚洲| 精品国产免费一区二区|