本人最近在学习Axis2 1.5,看到部署ADB的例子时,我自己写了个例子.发现用wsdl2java生成的JAVA代码没有给我生成STUB代码.
我的例子如下:
我先用JAVA2wsdl生成WSDL文件.
JAVA代码如下:package com.wang.adb.util;import java.util.HashMap;
import java.util.Map;
/**
 * 这是最简单的POJO类型的WebService
 * @author Administrator
 */
public class AxisTest03_adb
{
private Map<String, Float> params = new HashMap<String, Float>(); public Float getPrice(String symbol)
{
Float price = 23.43f;
Float pricemap = params.get(symbol);
if (pricemap != null)
{
price = pricemap;
}
return price;
} public void updatePrice(String symbol, Float price)
{
Float temp = params.get("symbol");
if (temp != null)
{
temp = price;
} else
{
params.put(symbol, price);
}
}
}
生成后的WSDL代码如下:<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:ns1="http://org.apache.axis2/xsd"
xmlns:ns="http://util.adb.wang.com"
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
targetNamespace="http://util.adb.wang.com">
<wsdl:types>
<xs:schema attributeFormDefault="qualified"
elementFormDefault="qualified"
targetNamespace="http://util.adb.wang.com">
<xs:element name="updatePrice">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="symbol"
nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="price"
type="xs:float" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getPrice">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="symbol"
nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="getPriceResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return"
type="xs:float" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</wsdl:types>
<wsdl:message name="getPriceRequest">
<wsdl:part name="parameters" element="ns:getPrice" />
</wsdl:message>
<wsdl:message name="getPriceResponse">
<wsdl:part name="parameters" element="ns:getPriceResponse" />
</wsdl:message>
<wsdl:message name="updatePriceRequest">
<wsdl:part name="parameters" element="ns:updatePrice" />
</wsdl:message>
<wsdl:portType name="AxisTest03_adbPortType">
<wsdl:operation name="getPrice">
<wsdl:input message="ns:getPriceRequest"
wsaw:Action="urn:getPrice" />
<wsdl:output message="ns:getPriceResponse"
wsaw:Action="urn:getPriceResponse" />
</wsdl:operation>
<wsdl:operation name="updatePrice">
<wsdl:input message="ns:updatePriceRequest"
wsaw:Action="urn:updatePrice" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="AxisTest03_adbSoap11Binding"
type="ns:AxisTest03_adbPortType">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document" />
<wsdl:operation name="updatePrice">
<soap:operation soapAction="urn:updatePrice"
style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
</wsdl:operation>
<wsdl:operation name="getPrice">
<soap:operation soapAction="urn:getPrice" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="AxisTest03_adbSoap12Binding"
type="ns:AxisTest03_adbPortType">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document" />
<wsdl:operation name="updatePrice">
<soap12:operation soapAction="urn:updatePrice"
style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
</wsdl:operation>
<wsdl:operation name="getPrice">
<soap12:operation soapAction="urn:getPrice"
style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="AxisTest03_adbHttpBinding"
type="ns:AxisTest03_adbPortType">
<http:binding verb="POST" />
<wsdl:operation name="updatePrice">
<http:operation location="AxisTest03_adb/updatePrice" />
<wsdl:input>
<mime:content type="text/xml" part="updatePrice" />
</wsdl:input>
</wsdl:operation>
<wsdl:operation name="getPrice">
<http:operation location="AxisTest03_adb/getPrice" />
<wsdl:input>
<mime:content type="text/xml" part="getPrice" />
</wsdl:input>
<wsdl:output>
<mime:content type="text/xml" part="getPrice" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="AxisTest03_adb">
<wsdl:port name="AxisTest03_adbHttpSoap11Endpoint"
binding="ns:AxisTest03_adbSoap11Binding">
<soap:address
location="http://localhost:8080/axis2/services/AxisTest03_adb" />
</wsdl:port>
<wsdl:port name="AxisTest03_adbHttpSoap12Endpoint"
binding="ns:AxisTest03_adbSoap12Binding">
<soap12:address
location="http://localhost:8080/axis2/services/AxisTest03_adb" />
</wsdl:port>
<wsdl:port name="AxisTest03_adbHttpEndpoint"
binding="ns:AxisTest03_adbHttpBinding">
<http:address
location="http://localhost:8080/axis2/services/AxisTest03_adb" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
然后我又用wsdl2java生成了java代码,主要是用来远程调用.
命令如下:
wsdl2java -uri AxisTest03_adb.wsdl -d adb -s -ss -sd -ssi -o src(主要是这个)
不知道为啥我生成的文件中没有类似STUB的代码.
只有8个文件AxisTest03_adbMessageReceiverInOnly.java,AxisTest03_adbMessageReceiverInOut.java,AxisTest03_adbSkeleton.java
AxisTest03_adbSkeletonInterface.java,ExtensionMapper.java,GetPrice.java,GetPriceResponse.java,UpdatePrice.java
请高手们指点小弟一下..急!!!!

解决方案 »

  1.   

    WEB Service中axis2的高手们,过来瞧瞧吧!!!
      

  2.   

    我也刚做一个WSDL文件的处理
    请看下代码的代码,你把路径修改下
    java -cp C:\axis2-1.5\lib\activation-1.1.jar;C:\axis2-1.5\lib\axiom-api-1.2.8.jar;C:\axis2-1.5\lib\axiom-dom-1.2.8.jar;C:\axis2-1.5\lib\axiom-impl-1.2.8.jar;C:\axis2-1.5\lib\axis2-adb-1.5.jar;C:\axis2-1.5\lib\axis2-adb-codegen-1.5.jar;C:\axis2-1.5\lib\axis2-ant-plugin-1.5.jar;C:\axis2-1.5\lib\axis2-clustering-1.5.jar;C:\axis2-1.5\lib\axis2-codegen-1.5.jar;C:\axis2-1.5\lib\axis2-corba-1.5.jar;C:\axis2-1.5\lib\axis2-fastinfoset-1.5.jar;C:\axis2-1.5\lib\axis2-java2wsdl-1.5.jar;C:\axis2-1.5\lib\axis2-jaxbri-1.5.jar;C:\axis2-1.5\lib\axis2-jaxws-1.5.jar;C:\axis2-1.5\lib\axis2-jibx-1.5.jar;C:\axis2-1.5\lib\axis2-json-1.5.jar;C:\axis2-1.5\lib\axis2-kernel-1.5.jar;C:\axis2-1.5\lib\axis2-metadata-1.5.jar;C:\axis2-1.5\lib\axis2-mtompolicy-1.5.jar;C:\axis2-1.5\lib\axis2-saaj-1.5.jar;C:\axis2-1.5\lib\axis2-spring-1.5.jar;C:\axis2-1.5\lib\axis2-transport-http-1.5.jar;C:\axis2-1.5\lib\axis2-transport-local-1.5.jar;C:\axis2-1.5\lib\axis2-xmlbeans-1.5.jar;C:\axis2-1.5\lib\bcel-5.1.jar;C:\axis2-1.5\lib\commons-codec-1.3.jar;C:\axis2-1.5\lib\commons-fileupload-1.2.jar;C:\axis2-1.5\lib\commons-httpclient-3.1.jar;C:\axis2-1.5\lib\commons-io-1.4.jar;C:\axis2-1.5\lib\commons-lang-2.3.jar;C:\axis2-1.5\lib\commons-logging-1.1.1.jar;C:\axis2-1.5\lib\geronimo-annotation_1.0_spec-1.1.jar;C:\axis2-1.5\lib\geronimo-jaxws_2.1_spec-1.0.jar;C:\axis2-1.5\lib\geronimo-saaj_1.3_spec-1.0.1.jar;C:\axis2-1.5\lib\geronimo-stax-api_1.0_spec-1.0.1.jar;C:\axis2-1.5\lib\geronimo-ws-metadata_2.0_spec-1.1.2.jar;C:\axis2-1.5\lib\httpcore-4.0.jar;C:\axis2-1.5\lib\jalopy-1.5rc3.jar;C:\axis2-1.5\lib\jaxb-api-2.1.jar;C:\axis2-1.5\lib\jaxb-impl-2.1.7.jar;C:\axis2-1.5\lib\jaxb-xjc-2.1.7.jar;C:\axis2-1.5\lib\jaxen-1.1.1.jar;C:\axis2-1.5\lib\jettison-1.0-RC2.jar;C:\axis2-1.5\lib\jibx-bind-1.2.1.jar;C:\axis2-1.5\lib\jibx-run-1.2.1.jar;C:\axis2-1.5\lib\log4j-1.2.15.jar;C:\axis2-1.5\lib\mail-1.4.jar;C:\axis2-1.5\lib\mex-1.5.jar;C:\axis2-1.5\lib\neethi-2.0.4.jar;C:\axis2-1.5\lib\smack-3.0.4.jar;C:\axis2-1.5\lib\smackx-3.0.4.jar;C:\axis2-1.5\lib\soapmonitor-1.5.jar;C:\axis2-1.5\lib\woden-api-1.0M8.jar;C:\axis2-1.5\lib\woden-impl-dom-1.0M8.jar;C:\axis2-1.5\lib\wsdl4j-1.6.2.jar;C:\axis2-1.5\lib\wstx-asl-3.2.4.jar;C:\axis2-1.5\lib\xalan-2.7.0.jar;C:\axis2-1.5\lib\xercesImpl-2.6.2.jar;C:\axis2-1.5\lib\xml-apis-1.3.02.jar;C:\axis2-1.5\lib\xmlbeans-2.3.0.jar;C:\axis2-1.5\lib\xml-resolver-1.2.jar;C:\axis2-1.5\lib\XmlSchema-1.4.3.jar; org.apache.axis2.wsdl.WSDL2Java -uri http://192.168.100.176:8080/axis2/services/SimpleService?wsdl
    http://localhost:8080/axis2/services/SimpleService?wsdl从最简单的开始 ,-uri 指定wsdl文件> WSDL2Java -uri currencyConvert.wsdl-d 使用不同的data binding方法> WSDL2Java -uri currencyConvert.wsdl -d xmlbeans-a 生成异步的方法> WSDL2Java -uri currencyConvert.wsdl -a-t 生成测试case> WSDL2Java -uri currencyConvert.wsdl -t ...稍微复杂一些的,-p可以指定生成的package,-o指定生成的路径,-ss生成服务端代码wsdl2java -uri ../wsdl/currencyConvert.wsdl -o ../gen_src   -ss -sd -g -p foo.bat再复杂一些,-ns2p 将namespace进行替换,多个中间用逗号隔开wsdl2java -uri ../wsdl/currencyConvert.wsdl -o ../wsdl/gen_src   -ss -sd -g -p com.foo.bar -ns2p "http://www.xxx.yyy.com/zzz/v1.0"=com.foo.bar,"
     命令参数说明: 
    ?  -d 生成客户端执行类的class文件的存放目录? 
    ?  -s 生成客户端执行类的源文件的存放目录? 
    ?  -p 定义生成类的包名? 
      

  3.   

    如果没修改路径它会在C:\src C盘生成一个src文件
      

  4.   

    请二楼讲的详细一点好吗?
    我以前用wsdl2java生成过,(AXIS2 1.4)生成的代码有客户端的STUB代码.
    但是Axis2 1.5确没有了.
    大家谁知道怎么生成客户端的STUB代码,指点小弟吧?
      

  5.   

    请问一下,你是怎么用java2wsdl 生成 wsdl文件的?我写的就是不成功,诶。能不能把命令写一下。
      

  6.   

    wsdl2java -uri WSDL文件 -p 生成后打的包名 -o 输出路径