java代码转化成客户端 转转java开发

java webservice生成的客户端代码 需要哪些jar包

1、安装环境 J2SE SDK 1.4,Tomcat 5.0,eclipse 3.2。

创新互联公司专业为企业提供锦屏网站建设、锦屏做网站、锦屏网站设计、锦屏网站制作等企业网站建设、网页设计与制作、锦屏企业网站模板建站服务,10多年锦屏做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

2、下载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方式

建议我们使用Stubs方式,因此我就主要就介绍一下第三种方式。

注意,Java源代码是放在D:\workspace\test\目录下,Axis相关包文件放在D:\workspace\test\WEB-INF目录下。

怎么把已经编写好的java程序打包成成桌面应用程序?

在java里是没有EXE这个概念的,但实际仍然有很多人把java代码做成了EXE。

其实这是将Java代码打包成jar后,用第三方工具对jar文件进行处理,加一个外壳,使其能有exe的样子。实际并没有太大价值,而且破坏了java的跨平台特性(生成exe后只能在Windows平台运行)。

值得说明,jar文件也能双击运行,跟EXE一样,只是后缀不一样而已。

在Eclips中打包java文件的步骤是点击 文件- 导出

即导出该项目到项目所在文件夹下的dist文件夹里

在Netbeans中点击 文件 - 清理并生成

即生成该项目的jar压缩文件,在项目文件夹下的dist文件夹里

(导出、清理 都是生成jar文件,效果一样)

如何生成webservice客户端

生成webservice客户端的解决办法

JDK自带wsimport命令

wsimport命令在JDK1.6及以上版本中自带该工具,所以如果想使用本方式须安装JDK1.6及其以上的版本。

打开cmd命令窗口,快捷方式为window+r组合键。打开cmd窗口后,通过wsimport命令生成webservice客户端。

wsimport -s 本机java工程src文件路径 -p 包路径 -keep webservice接口地址。

例如:wsimport -s E:\workspace\givemewords\src -p com.test.service -keep

wsdl文件生成客户端

首先我们需要知道webservice接口地址,

右击另存为,保存为.wsdl的文件。

在eclipse中新建一个java项目。

将.wsdl文件拷贝到java工程下边。

右击新建一个webservice client工程文件。

点击browse,选择之前拷贝进去的.wsdl文件,点击下一步。

这里会默认输出客户端的路径,一般为src文件。

点击完成,客户端生成成功,我们就可以正常调用了。

怎样把一个java源代码做成一个软件成品?

其实就是用一个外部程序 调用java虚拟机运行你的java程序。

可以做一个批处理文件,在里面调用java 虚拟机运行你的java程序。

也可以用某种编程语言,像vb ,c 或c++编个程序,生成exe,能调用java虚拟机运行你的程序,很简单的。

【源代码】

源代码(也称源程序),是指一系列人类可读的计算机语言指令。 在现代程序语言中,源代码可以是以书籍或者磁带的形式出现,但最为常用的格式是文本文件,这种典型格式的目的是为了编译出计算机程序。

springmvc框架如何实现像webservice一样通过wsdl2Java生成客户端代码

在用到web service时,如果是调用自己开发的web service还好,可以有一个方法的接口或参数对象实体类什么的,但如果是调用第三方的服务,除了得到web service服务地址的wsdl文档外,没有任何实质性编码的东西,写原生调用太麻烦,这时就需要自己写一个方法的接口类。

这个,目前已经有比较成熟的工具,可以自动生成,下面作一下简单的介绍。

apache的wsdl2java工具,目前貌似CXF和axis各有一套,使用方式大同小异,但生成的代码会有所区别,这时说的是CXF提供的wsdl2java工具。

wsdl2java用法:

wsdl2java -p com -d src -all  aa.wsdl

-p  指定其wsdl的命名空间,也就是要生成代码的包名:

-d  指定要产生代码所在目录

-client 生成客户端测试web service的代码

-server 生成服务器启动web  service的代码

-impl 生成web service的实现代码

-ant  生成build.xml文件

-all 生成所有开始端点代码:types,service proxy,,service interface, server mainline, client mainline, implementation object, and an Ant build.xml file.

详细用法见:

一开始使用了CXF的这套工具,发现不是很方便,毕竟依赖CXF提供的工具jar包,个人不是很喜欢用。

后来发现JDK居然也自带了对web service生成java代码的功能,貌似1.6版本开始的,试用后发现效果十分不错,果断投入它的怀抱。下面作下简单的介绍,以备忘。

打开jdk下的bin目录 看下能否找到"wsimport.exe"这个文件

一般情况下都会有

如果没有则说明你的JDK不支持这个功能

然后在DOS窗口下输入wsimport 敲回车

如果提示错误的话 说明你的JDK环境变量还没有配好

一句话总结,如果你在dos窗口下输入wsimport正常,就可以

如果OK的话 输入以下命令就可以将wsdl文件生成java文件了

wsimport   -keep -p com.llg.ws2 -s g:/ws

参数说明

wsimport 这个是必须的 该工具的名称

wsdl文件

-keep  是否生成源文件

-p com.llg.ws2  生成后的java包名

-s g:/ws    生成后放哪个目录

但是前几天,在对一个第三方提供的web service使用该工具生成java代码的时候,居然出错了,网上查找后终于找到原因。

使用cxf wsdl2java或javax wsimport工具的时候,可能会遇到关于生成的Response类文件名冲突的问题

Console代码

WSDLToJava Error: Thrown by JAXB : A class/interface with the same name "***" is already in use. Use a class customization to resolve this conflict.

目前可选择的方案:

apache的wsdl2java工具,使用-autoNameResolution自动处理

wsdl2java -autoNameResolution 

JDK自带的工具

wsimport -p com.test.client -keep  -B-XautoNameResolution

2.如果web service是己方开发的,可以修改代码,使用自定义bindings,详细可看sun webservice文档

例如:

Java代码

public interface ValidateCCService

@WebMethod

@WebResult(name = "response")

public ValidateCCResponse validateCC(@WebParam(name = "request")ValidateCCRequest request);

这个情况下定义的方法名,如果使用工具生成客户端代码,很可能存在Response冲突,因为定义的wsdl中会有一个关于接口方法的message

wsdl:message name="validateCCResponse"

/wsdl:message

方法名定义的message与接口定义返回的ValidateCCResponse,在工具生成客户端代码时就会产生命名冲突。

但是通过更改接口方法名为:

Java代码

public interface ValidateCCService

@WebMethod

@WebResult(name = "response")

public ValidateCCResponse validate(@WebParam(name = "request")ValidateCCRequest request);

即可解决该冲突,


当前标题:java代码转化成客户端 转转java开发
本文地址:http://pwwzsj.com/article/hgeigj.html