导航:首页 > 编程语言 > axis2java2wsdl命令

axis2java2wsdl命令

发布时间:2024-11-29 02:50:15

1. axis2用wsdl2java命令生成客户端java类,怎么设置超时时间,axis2.xml有配置超时,但是客户端没用用到。

可能是wsdl2java命令没有生成超时的代码,具体需要研究下生成代码的wsdl2java的工作原理,我一般都是手动设置超时时间
Service service = new Service();
Call call = (Call) service.createCall();
call.setTimeout(1000*60*15); //设置超时时间 15分钟

2. Java使用axis2调用一个.net 的webservice,报错java.lang.NoSuchMethodError: doWriteMTOM

这个问题很简单,有几个地方可能会导致这个问题。

1、命名空间,在设置调用action的时候指定action的命名空间,具体可以看wsdl文件中的声明。setOperationName(new QName("http://tempuri.org/HelloWorld","HelloWorld"))

2、http协议版本不同造成的,axis2在做http传输时采用的chunked模式,而.net的webserver不支持axis中使用的是HTTP/1.0协议,而.NET和axis2使用的是HTTP/1.1协议,后两者的区别在于NET未使用ns1的命名空间前缀打包SOAP请求,且axis2使用了Content- Encoding: chunked头。所以必须在axis2中设置一下。
UserServiceStub stub = new UserServiceStub();
stub._getServiceClient().getOptions().setProperty(org.apache.axis2.transport.http.HTTPConstants.CHUNKED,Boolean.FALSE);

具体的还要你试一下,如果方便的话把wsdl文件和java代码发给我,我看看是哪的问题。

3. Eclipse中用axis2插件生成wsdl文件时出错。

建议重新安装解决方法如下:
1、下载Axis2及Eclipse插件

http://axis.apache.org/axis2/java/core/download.cgi下载适应版本,
http://archive.apache.org/dist/ws/axis2/tools/
下载axis2-eclipse-codegen-wizard.zip和axis2-eclipse-service-archiver-wizard.zip

2、解压插件

解压后得到两个文件夹:Axis2_Codegen_Wizard_1.3.0和Axis2_Service_Archiver_1.3.0,拷贝至eclipse\plugins

3、重新启动Eclipse,如在File->New->Other中有Axis2 Wizards,说明插件安装成功。

4、新建Axis2 Code Generator,选择wsdl文件可生成客户端代理类。
出现错误An error occurred while completing process-java.lang.reflect.InvocationTargetException的解决方法:
1.
从AXIS2的LIB库中复制"geronimo-stax-api_1.0_spec-1.0.1.jar"和"backport-util-
concurrent-3.1.jar"文件到Axis2_Codegen_Wizard_1.3.0的lib目录中,同时修改
Axis2_Codegen_Wizard_1.3.0下的plugin.xml文件,在<runtime>中添加
<library name="lib/geronimo-stax-api_1.0_spec-1.0.1.jar">
<export name="*"/>
</library>

<library name="lib/backport-util-concurrent-3.1.jar">
<export name="*"/>
</library>

到plugin.xml文件中,保存。

如没有backport-util-concurrent-3.1.jar另外下载,下载地址:http://backport-jsr166.sourceforge.net/。

2.将 $workspace位置\.metadata\.plugins下目录 Axis2_Codegen_Wizard 删除。

3.在命令行下切换至$ECLIPSE_HOME目录,然后执行:eclipse –clear。

如还有问题参考如下解决办法:修改名字,再改回来。

.

4. java webservice怎么生成wsdl文件

在大多数情况下我们都需要为我们的服务提供一个WSDL文件,而 Axis2's Java2WSDL 是专门用来生成WSDL文件的D专用工具,如果你要在命令行模式下进行生成WSDL文件,首先需要保证你的环境变量AXIS2_HOME是否已经配置OK,同时还要保证把%AXIS2_HOME%in加入到你的path环境中,要生成 WSDL文件,首先要保证你的class能够编译成功,而且已经编译成功,然后进入class文件编译后的根目录(在JBuilder中是classes,在Eclipse中是bin目录)这时,生成WSDL文件的准备工作已经OK。x0dx0ax0dx0a下面是生成WSDL文件时的可选参数和参数说明:x0dx0a---------------------------------------------------------------------------------x0dx0aUsage java2wsdl -cn : class file namex0dx0a-o : output file locationx0dx0ax0dx0a-cp : list of classpath entries - (urls)x0dx0ax0dx0a-tn : target namespacex0dx0ax0dx0a-tp : target namespace prefixx0dx0ax0dx0a-stn : target namespace for schemax0dx0ax0dx0a-stp : target namespace prefix for schemax0dx0ax0dx0a-sn : service namex0dx0ax0dx0a-of : output file name for the WSDLx0dx0ax0dx0a-st : style for the WSDLx0dx0ax0dx0a-u : use for the WSDLx0dx0ax0dx0a-l : address of the port for the WSDLx0dx0ax0dx0a-nsg : fully qualified name of the class that implements -p2n [,,] ...x0dx0ax0dx0a-efd : Setting for elementFormDefault (defaults to qualified)x0dx0ax0dx0a-afd : Setting for attributeFormDefault (defaults to qualified)x0dx0ax0dx0a-xc : Extra class for which schematype must be generated.x0dx0aUse as : -xc class1 -xc class2 ...典型地,进入你的工程的二进制编译根目录,执行命令模板如下:x0dx0ajava2wsdl -cp . -cn [PACKAGENAME].[CLASSNAME]-of [FILENAME].wsdlx0dx0ax0dx0a现在我们假设在samples.helloworld.service.axiom;包下面有个HelloWorldService类,工程的类文件编译后存放在buildclasses目录下,那么,首先进入该目录中,然后执行以下命令:x0dx0ajava2wsdl -cp . -cn samples.helloworld.service.axiom.HelloWorldService -of HelloWorldService.wsdlx0dx0ax0dx0a执行后的CMD提示如下说明已经成功执行了:x0dx0ax0dx0aUsing AXIS2_HOME: D:axis2-1.1.1x0dx0aUsing JAVA_HOME: C:Program FilesJavajdk1.5.0_06

5. SoapUI中的axis2生成的代码有什么作用怎么用

这个其实就是wsdl2java,也就是根据接口对外发布的wsdl文件生成调用这个web service接口的客户端程序

6. axis 1.4 wsdl2java怎么使用

[java] view plainprint?
用wsdl2java简化客户端的编写

也许有很多读者会说“有没有搞错啊,只调用两个WebService方法用要写这么多代码,太麻烦了”。

不过幸好Axis2提供了一个wsdl2java.bat命令可以根据WSDL文件自动产生调用WebService的代码。wsdl2java.bat命令可以在<Axis2安装目录>"bin目录中找到。在使用wsdl2java.bat命令之前需要设置AXIS2_HOME环境变量,该变量值是<Axis2安装目录>。

在Windows控制台输出如下的命令行来生成调用WebService的代码:

%AXIS2_HOME%\bin\wsdl2java -uri http://localhost:8080/axis2/services/SimpleService?wsdl -p client -s -o stub

其中-url参数指定了wsdl文件的路径,可以是本地路径,也可以是网络路径。-p参数指定了生成的Java类的包名,-o参数指定了生成的一系列文件保存的根目录。在执行完上面的命令后,读者就会发现在当前目录下多了个stub目录,在."stub"src"client目录可以找到一个SimpleServiceStub.java文件,该文件复杂调用WebService,读者可以在程序中直接使用这个类,代码如下:

package client;

import javax.xml.namespace.QName;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;

public class StubClient
{
public static void main(String[] args) throws Exception
{
SimpleServiceStub stub = new SimpleServiceStub();
SimpleServiceStub.GetGreeting gg = new SimpleServiceStub.GetGreeting();
gg.setName("比尔");
System.out.println( stub.getGreeting(gg).get_return());
System.out.println(stub.getPrice().get_return());
}
}

上面的代码大大简化了调用WebService的步骤,并使代码更加简洁。但要注意的是,wsdl2java.bat命令生成的Stub类将WebService方法的参数都封装在了相应的类中,类名为方法名,例如,getGreeting方法的参数都封装在了GetGreeting类中,要想调用getGreeting方法,必须先创建GetGreeting类的对象实例。

实际实现:

C:\Documents and Settings\Administrator>D:

D:\>cd axis2-1.5.4

D:\axis2-1.5.4>cd bin

D:\axis2-1.5.4\bin>
D:\axis2-1.5.4\bin>
D:\axis2-1.5.4\bin>wsdl2java -uri http://192.168.1.140:8099/services/SSO?ws
dl -p com.bcinfo.sso
Using AXIS2_HOME: D:\axis2-1.5.4
Using JAVA_HOME: D:\Program Files\Java\jdk1.6.0_10
Retrieving document at 'http://192.168.1.140:8099/services/SSO?wsdl'.
D:\axis2-1.5.4\bin>wsdl2java -uri http://192.168.1.140:8099/services/SSO?ws
dl -p com.bcinfo.SSoClient
Using AXIS2_HOME: D:\axis2-1.5.4
Using JAVA_HOME: D:\Program Files\Java\jdk1.6.0_10
Retrieving document at 'http://192.168.1.140:8099/services/SSO?wsdl'.
D:\axis2-1.5.4\bin>

7. wsdl文件生成的java类怎么用

根据wsdl文件生成webservice代码下边我们可以根据这个.wsdl文件生成java代码,这些代码用于客户端和服务器端进行连接,也有客户端的代码。生成代码的具体步骤如下:选择菜单“File->New->Other”,从对话框中选取“Axis2Wizards”下面的“Axis2CodeGenerator”点击Next下一步进入如下页面:点击Next下一步进入如下页面:在该页面选择刚才建好的Axis2Demo.wsdl文件点击Next下一步进入如下页面:在上边的图中选中custom和GenrateAll注意:上图中的Custompackagename是客户端代码的包名字这里把它改为:com.neusoft.axis2demo.client做为客户端的包名。然后点击Next下一步:进入如下图在OoutputPath这项选中工程的根目录作为这些自动生成代码的目录.然后点击finish完成代码生成工作.下图为生成代码后的工程目录结构下边介绍一下生成的代码的用途其中包(1):com.neusoft.axis2demo.client是客户端代码,第三方使用的.(2):com.neusoft.axis2demo.services.xsd是第三方调用webservice的传入参数和返回参数.(3):com.neusoft.axis2demo.common.xsd中的类是(2)的参数。其中第三方只需要调用com.neusoft.axis2demo.client中的Axis2DemoStub类中的nameConvertToContext方法就行了这个类的雏形是下边这样的。publiccom.neusoft.axis2demo.services.xsd.(com.neusoft.axis2demo.services.xsd.NameConvertToContextparam22)throwsjava.rmi.RemoteException{return(com.neusoft.axis2demo.services.xsd.NameConvertToContextResponse)object;//TODO}其中红色部分是(2)包中的类他们作为参数传入和返回,同时红色的类中也有set和get方法用来存储(3)com.neusoft.axis2demo.common.xsd包中的类.

8. 如何使用axis2生成wcf客户端代码

下载axis2-1.5.4-bin.zip文件并解压。
设置axis2的环境变量,如下图所示:
利用axis2中的wsdl2java.bat生成客户端程序。
先启动Tomcat7并在IE里运行http://localhost:8081/TestAxis2Ws/services/HelloService?wsdl 看看服务端是否正常解析。
%AXIS2_HOME%binwsdl2java -uri http://localhost:8081/TestAxis2Ws/services/HelloService?wsdl -paxis2.service.server -o stub
其中-uri参数指定了wsdl文件的路径,可以是本地路径,也可以是网络路径。-p参数指定了生成的Java类的包名,-o参数指定了生成的一系列文件保存的根目录。在执行完上面的命令后,读者就会发现在当前目录下多了个stub目录,可以找到一个HelloServiceStub.java文件,该文件复杂调用WebService,读者可以在程序中直接使用这个类。
运行-->cmd-->具体命令如下:
要先进入axis2的bin目录然后运行wsdl2java.bat
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
C:Documents and SettingsJambhala>d:
D:>cd D:WebServiceAxisaxis2axis2-1.5.4-binaxis2-1.5.4bin
D:WebServiceAxisaxis2axis2-1.5.4-binaxis2-1.5.4bin>wsdl2java -uri http://l
ocalhost:8081/TestAxis2Ws/services/HelloService?wsdl -p axis2.service.server -o
stub
Using AXIS2_HOME: D:WebServiceAxisaxis2axis2-1.5.4-binaxis2-1.5.4
Using JAVA_HOME: C:Javajdk1.6.0
Retrieving document at 'http://localhost:8081/TestAxis2Ws/services/HelloService?
wsdl'.
D:WebServiceAxisaxis2axis2-1.5.4-binaxis2-1.5.4bin>
这时到axis2的bin目录下会发现出现了一个stub目录,如下图所示:

其中HelloServiceStub.java是客户端程序,HelloServiceCallbackHandler.java是异步客户端程序。
把这两个类复制到上次已经建立好的服务端工程里

注意:这个地方复制进来后会报错的,因为在D:WebServiceAxisaxis2axis2-1.5.4-binaxis2-1.5.4binstubsrcaxis2serviceserver下的类路径为package axis2.service.server;需要改成packageaxis2.service.client;并且需要把HelloServiceStub.java和HelloServiceCallbackHandler.java相关的报错位置都把路径改一下,不要闲烦,要改的地方还满多的呢。
创建带main方法的StubClient.java类文件,代码如下:
package axis2.service.domain;
import java.rmi.RemoteException;
import org.apache.axis2.AxisFault;
import axis2.service.client.HelloServiceStub;
public class StubClient {

public static void main(String[] args) {
HelloServiceStub stub = null;
try {
stub = new HelloServiceStub();
HelloServiceStub.SayHello sh = new HelloServiceStub.SayHello();
sh.setName("于士博");
System.out.println(stub.sayHello(sh).get_return());
} catch (AxisFault e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
}
}

9. axis2的wsdl2java命令可以生成wsdl的服务端和客服端代码,请问各位大牛这个客服端和服务端的有什么区别。

wsdl通常是由来接口提供商生成的自,也就是说服务端代码在提供商那。

自己通过wsdl2java命令可生成服务端与客户端的代码,但是服务端中的代码只包含接口定义,没有代码实现.测试的时候可以自己实现,只需要保证数据能正确传输就行了。

阅读全文

与axis2java2wsdl命令相关的资料

热点内容
java相关网络协议 浏览:730
滴滴网络证怎么搞 浏览:867
苹果笔记本W7触控板 浏览:594
编程讲座讲什么 浏览:102
ios系统编程语言有哪些 浏览:142
net封装json 浏览:617
java开发浏览器劫持 浏览:507
手机密码记录软件 浏览:268
QQ空间视频哪个文件夹 浏览:870
百度下载的文件怎么打开文件 浏览:259
raid文件系统 浏览:72
文件打开软件 浏览:982
sst文件怎么用 浏览:721
win7怎么更改文件类型 浏览:119
word找不到源文件 浏览:131
java定时器的作用 浏览:89
电脑传输大文件到手机上 浏览:901
手机文件夹前面带点的 浏览:877
2018数字代码 浏览:65
广告如何获得更多的样板数据 浏览:279

友情链接