怎么用axis把wsdl文件生成相应的java类,我都已经配置好axis了,发布服务也可以了,就是我现在手里有wsdl文件,想把他生成JAVA类,怎么生成???加我QQ290612821,或者是推荐几个地址,直接告诉我最好啦,嘿嘿
------------------------------------------------------------------------------------------------------------------
问题补充:
我按文章里写的下载了,然后运行后没有在source里生成对应的文件,点完马上就关闭了,是不是命令有问题呀,
也可以利用wsdl2java!!
可以参考下面的文章:
http://www.iteye.com/topic/746819
------------------------------------------------------------------------------------------------------------------
问题补充:
我就用这个就行啦wsdl2java,我点击后没生成java文件
------------------------------------------------------------------------------------------------------------------
问题补充:
怎么办呀,WSDL2Java下载了,路径也对了,点击后窗口直接就关了,没反应
也可以利用wsdl2java!!
可以参考下面的文章:
http://www.iteye.com/topic/746819
------------------------------------------------------------------------------------------------------------------
问题补充:
用WSDL2Java用配置环境变量吗,我执行的是bat文件
set Axis_Lib=.\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Output_Path=.\source
set Package= com.test.webservice.client
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% ServiceIWAuth.wsdl
我点击后窗口马上就关闭了,是怎么回事呢,我这里也有包,不缺啥呀,就是没陪环境变量
------------------------------------------------------------------------------------------------------------------
问题补充:
文档能给我看看么
如果你愿意尝试下 MyEclipse 或者xfire 的话 2分钟解决问题!
我这还有文档!
------------------------------------------------------------------------------------------------------------------
问题补充:
我用的不是url路径,是wsdl文件生成的,你那点击也好使么,不用开什么tomcat吧,感觉和tomcat没关系
------------------------------------------------------------------------------------------------------------------
问题补充:
加上@那个就有反应了,但是报个错,好像是org/xml/sax/attributes
有是少包了么
------------------------------------------------------------------------------------------------------------------
问题补充:
谢谢

------------------------------------------------------------------------------------------------------------------
问题补充:
set Axis_Lib=.\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Output_Path=.\source
set Package= com.test.webservice.client
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% pdfGenerateService.wsdl
@pause
set Package= com.test.webservice.client
这个我不知道写啥呀,我也不知道是啥包,是这个的问题么
将环境变量中axis相关的设置先去掉,包括引入到classpath中的jar文件,从classpath中去掉。
纯粹的使用从哪个连接上下载的东东来运行生成代码。
------------------------------------------------------------------------------------------------------------------
问题补充:
OK啦,可以生成了,就是缺少包,我把昨天你让我下载的包都房里就好了,谢谢啦
采纳的答案
2010-10-28 enet_java (架构师)
enet_java 写道
我之间直接就是使用jbuilder来生成的,如果有这个工具的话,那就很方便了。
也可以利用wsdl2java!!
可以参考下面的文章:
http://www.iteye.com/topic/746819
这个bat文件及使用说明没有任何问题,我使用了一下,可以正常生成的。
你的wsdl url是否正确呀?确认一下吧。
也可以利用wsdl2java!!
可以参考下面的文章:
http://www.iteye.com/topic/746819
如果你愿意尝试下 MyEclipse 或者xfire 的话 2分钟解决问题!
我这还有文档!
- set Axis_Lib=.\lib
- set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
- set Output_Path=.\source
- set Package= com.test.webservice.client
- %Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% http://localhost:8080/NGCUSTCARE/service/pdfGenerateService?wsdl
- @pause
set Axis_Lib=.\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Output_Path=.\source
set Package= com.test.webservice.client
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% http://localhost:8080/NGCUSTCARE/service/pdfGenerateService?wsdl
@pause
直接编辑WSDL2Java(URL).bat文件中的url,然后保存,双击WSDL2Java(URL).bat执行,就会在当前目录下面生成一个source目录,目录结构就是你设置的package 默认是com\test\webservice\client,会生成5个文件。
enet_java 写道
执行这个文件会帮助你设置环境变量的,我这里都没有axis,呵呵!!!!
完全可以,是不是你的wsdl文件有问题。
在命令通过java执行:
H:\axis-1_4\lib>java -cp g:/611 code/pm/src/share;axis.jar;axis-ant.jar;commons-
discovery-0.2.jar;commons-logging-1.0.4.jar;jaxrpc.jar;log4j-1.2.8.jar;saaj.jar;
wsdl4j-1.5.1.jar org.apache.axis.wsdl.Java2WSDL -o p3e.wsdl -n "urn:P3EWebservi
ces" -p"p3e.webservice" "urn:P3EWebservices" p3e.webservice.P3EWebservices
-cp后边的包都要有,-o代表要转的wsdl,-p代表包,其他的参数你可以参考http://demon3780.iteye.com/blog/463659。
希望对你有帮助:)

将环境变量中axis相关的设置先去掉,包括引入到classpath中的jar文件,从classpath中去掉。
纯粹的使用从哪个连接上下载的东东来运行生成代码。
set Axis_Lib=.\lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Output_Path=.\source
set Package= com.test.webservice.client
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% pdfGenerateService.wsdl
@pause
set Package= com.test.webservice.client
这个我不知道写啥呀,我也不知道是啥包,是这个的问题么
enet_java 写道
那可能是跟你本地的环境设置有关。
将环境变量中axis相关的设置先去掉,包括引入到classpath中的jar文件,从classpath中去掉。
纯粹的使用从哪个连接上下载的东东来运行生成代码。
跟这个package没有任何关系。
http://www.iteye.com/topic/746819
1 下载WSDL2Java.rar
2 解压WSDL2Java.rar
3 用记事本打开WSDL2Java(file).bat 修改HelloWorldService.wsdl为你要转换的wsdl文件
4 执行WSDL2Java(file).bat批处理文件
5 source文件夹下位相应的java代码
若wsdl为url形式,修改WSDL2Java(URL).bat同时执行WSDL2Java(URL).bat批处理文件
http://blog.youkuaiyun.com/ziliang871118/article/details/6103565
eclipse下如何用axis生成wsdl客户端
一、Axis环境的安装
1、安装环境 J2SE SDK 1.4,Tomcat 5.0,eclipse 3.2。
2、到 http://xml.apache.org 网站下载Axis安装包。
3、将Axis相关包文件放在WEB-INF/lib目录下。
4、Axis可选的包:activation.jar; mail.jar; xmlsec-1.4.Beta1.jar拷贝到WEB-INF目录下,生成客户端时候需要使用。
Axis支持三种web service的部署和开发,分别为:
1、Dynamic Invocation Interface (DII)
2、Dynamic Proxy方式
3、Stubs方式
二 新建web项目test,编写服务端程序server,SayHello.java,编译server.SayHello.java
package server;
public class SayHello
{
public String getName(String name)
{
return "hello "+name;
}
}
三 编写deploy.wsdd文件
<deployment xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java = "http://xml.apache.org/axis/wsdd/providers/java" >
<!--HelloWorld为webservice的名字,java:RPC为服务类型, -->
<service name = "SayHello" provider = "java:RPC" >
<!--参数className指定具体的类 -->
<parameter name = "className" value = "server.SayHello" />
<!-- 此参数定义允许调用的方法,*号表示所有public方法 -->
<parameter name = "allowedMethods" value = "*" />
</service >
</deployment >
四 发布服务
set Axis_Lib=E:/MyTest/test/WebRoot/WEB-INF/lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Axis_Servlet=http://localhost:8081/test/servlet/AxisServlet
%Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% deploy.wsdd
执行这个批处理文件,这时候,如果提示成功的话,访问http://localhost:8081/test/services 就会显示服务列表
并访问http://localhost:8081/test/services/SayHello?wsdl
生成文件sayHello.wsdl
五 编写WSDL2Java.bat,WSDL2Java.bat内容如下
set Axis_Lib=E:/MyTest/test/WebRoot/WEB-INF/lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Output_Path=E:/MyTest/test/src
set Package=client.SayHello
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% SayHello.wsdl
执行这个批处理文件就可以生成client stub
生成的stub client文件列表为:SayHello.java,SayHelloService.java,SayHelloServiceLocator.java,SayHelloSoapBindingStub.java .
六 编写客户端程序,编译并执行
public class Test {
/**
* @param args
* @throws ServiceException
* @throws RemoteException
*/
public static void main(String[] args) throws ServiceException, RemoteException {
SayHelloService service = new SayHelloServiceLocator();
SayHello_PortType client = service.getSayHello() ;
String retValue = client.getName("clientname");
System.out.println(retValue);
}
}
http://www.blogjava.net/rongxh7/archive/2009/05/21/271982.html
http://www.blogjava.net/rongxh7/archive/2009/07/02/285193.html
Axis2与Eclipse整合开发Web Service之二:WSDL逆向生成服务端
http://www.blogjava.net/rongxh7/archive/2009/07/02/285193.html
一般开发Web Service,是选写服务端,再根据生成的WSDL文件生成客户端。看过一本SOA的书中说,如果实现防止不同语言一些特定的数据类型的不兼容性,推荐先定义WSDL接口,包括一输入输出参数、返回值及相关的数据类型等,再通过WSDL来生成服务器端和客户端,这样的好处是:服务端不用关心客户端怎么调用,客户端也不用关系服务端如何实现。
关于Eclipse中Axis2的配置方法,请看我的[图解教程] Axis2与Eclipse整合开发Web Service之一:简单的计算服务例子,下面来新建一个WSDL文件,如下图:
改个名字为“manager.wsdl”,如下图:
下一步,定义命名空间和协议等信息,默认即行。如下图:
finish后,会在主工作区出现如下图:
这是manager.wsdl的图形化形式,点击“Source”会可查看到源代码:
这是默认生成的wsdl,我们要根据我们的项目需要,修改上面的图,首先对方法名进行修改,如下图:
可见,修改之后,右边的input和output也跟着修改了,这两个就是定义plus的输入和输出。
点击input参数“plus”右边的提示箭头,进入下图:
就在这里定义输入参数和和参数类型等信息,因为我们plus(float x, float y)方法中有两个参数x和y,故我们将上图改成两个参数的序列:
变成下图,对比一下方法plus(float x, float y),下图也不会太难理解吧!
我们返回manager.wsdl视图,选择output参数右边的箭头,进入下图:
我们在这里设置float plus(float x, float y)方法的返回值及其类型,因其返回值只有一个,我们只须把上面的out的类型改成我们方法中用的float,改后,如下图:
我们可以在这里对输入输出的参数及其他数据类型进行修改,如果在上面的操作过程中,不小心产生了多余的标签的话,也可以在这里去除。
好了,我们再回到manager.wsdl,在源代码视图里右键选“Validate”,对xml文档进行检验,如果有错误的,就根据需要修改。
好了,图形化编写的wsdl文档完成了,顺便说一下,方法是可以定义多个的,如下图:
为简单起见,我们就先以刚才做定义的那个方法为例,看看,如何根据wsdl文件,自动生成Web Service的服务器端。
我们New一个Web Service,如下图:
记得在Web Service type中选择“Top down Java Bean Web Service”,如下图:
然后,在Service definition中找到刚才写的那个manager.wsdl文件。
回到Web Service对话框,将服务类型的滑块调到“Develop service”处,
接下来,就next –> next –-> finish就行。它会自动生成Web Service服务端的接口和类,在类中,可找到我们定义的方法:
我们只要修改方法plus的方法体,以实现我们要实现的功能即行。如下:
这是通过WSDL反向生成Web Service服务端的最简单一个例子,可能看不到有什么好处,没有像[图解教程] Axis2与Eclipse整合开发Web Service之一:简单的计算服务例子那样的简便快捷,但如果是一些特有的数据类型,如List,Set,这些,我们有在WSDL图形化设计中找到相应的替代类型,先定义WSDL再生成服务端接口,这样做,不仅Java开发客户端是没有问题的,用C#开发客户端也能成功没有出错!
但如果先开发服务器端的话,如果用到一些Java特有的数据类型,如List,Set,如果用其他语言生成的客户端,就可能出问题。同理,用C#开发服务端,如果用到像DataSet这样的返回类型的话,那如果用Java或者其他语言去开发客户端,也可能会出现问题的。
如果统一先写WSDL,再根据WSDL生成服务端和客户端,应该是一种很不错的做法,Eclipse在这方面的图形化支持给带给我们事半功倍的效果,这样做,也比较符合SOA的做法。