lizongbo at 618119.com 工作,生活,Android,前端,Linode,Ubuntu,nginx,java,apache,tomcat,Resin,mina,Hessian,XMPP,RPC

2007年12月29日

OpenFire 3.4.3发布了。

Filed under: Java,数据库 — 标签:, , , — lizongbo @ 13:22

OpenFire 3.4.3在27号发布了,

相关下载地址为:

http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_3_4_3.zip
http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_src_3_4_3.zip

而plugin里也新添了两个:

http://www.igniterealtime.org/projects/openfire/plugins/emailListener.jar

http://www.igniterealtime.org/projects/openfire/plugins/motd.jar

Spark还没出新版,但是从svn的源代码中发现,gateways的transport多了:

GaduGaduTransport,IRCTransport,SimpleTransport

h2database也在27号发布了新版

ersion 1.0.64 (2007-12-27):

http://www.h2database.com/html/frame.html

http://www.h2database.com/h2-setup-2007-12-27.exe

http://www.h2database.com/h2-2007-12-27.zip

2007年12月28日

Xref-Java2Html — 很好用的java2html工具

Filed under: Java,JAVA IDE — 标签:, , — lizongbo @ 14:16

Xref-Java2Html — 很好用的java2html工具

Xref-Java2Html生成的超链接最多,方便在浏览器中阅读代码,跳转也非常方便。
其它的一些java2hhtml的工具,只能算是语法高亮的html,
缺少class之间关联跳转的链接,使得阅读代码并不方便。

Xref-Java2Html的安装步骤为:

1.运行 java -jar xref-java2html-i86pc-windows.jar,选择安装目录:
比如我选的 d:\java\xref-java2html,安装完成。

2.再到D:\Java\xref-java2html下面运行 java -jar java2html.jar

D:\Java\xref-java2html>java -jar java2html.jar

3.在界面中,添加需要生成html的java源代码的目录,
点“Options” 设置参数:

把Generate  .html files instead of .java.html的钩去掉.

实际最终生成html是xrefw.exe这个程序执行的结果

D:\Java\xref-java2html>xrefw.exe -java2html -stderr -html -nostdop -nocxfile -javafilesonly -mf20 -htmlgxlist -htmllxlist -htmldirectx -refalphahash -htmllinenums -htmlcutsuffix -htmlgenjavadoclinks -htmllinenumlabel=line. -jdkclasspath D:\Java\jdk1.6.0_03\jre\lib\rt.jar -classpath C:\ -javadocpath C:\ -sourcepath D:\  -d “E:\mywork\minasmpp\java2html” “E:\mywork\minasmpp\src” -htmljavadocpath=http://download.java.net/jdk/jdk-api-localizations/jdk-api-zh-cn/publish/1.6.0/html/zh_CN/api

官方网站只提供了1.4版本的可执行文件。

因此需要自己编译1.6.10的代码。
(我用cygwin编译成功,但是只能在cygwin下运行)

编译步骤如下:
1.安装cygwin. 我安装的是: cygwinenv-2.00.exe
安装到D:\cygwin
2.解压代码到D:\cygwin\xrefactory-1.6.10-src

3.启动cygwin,转到对应目录,执行make

—————-

Copying skeleton files.
These files are for the user to personalize
their cygwin experience.

These will never be overwritten.

`./.bashrc’ -> `/home/Administrator//.bashrc’
`./.bash_profile’ -> `/home/Administrator//.bash_profile’
`./.inputrc’ -> `/home/Administrator//.inputrc’

Administrator@lizongbo ~
$ ls

Administrator@lizongbo ~
$ cd /

Administrator@lizongbo /
$ ls
bin         cygwin.ico  home  tmp  var
cygwin.bat  etc         lib   usr  xrefactory-1.6.10-src

Administrator@lizongbo /
$ cd xrefactory-1.6.10-src/

Administrator@lizongbo /xrefactory-1.6.10-src
$ ls
byacc-1.9  xref-any

Administrator@lizongbo /xrefactory-1.6.10-src
$ cd xref-any/

Administrator@lizongbo /xrefactory-1.6.10-src/xref-any
$ make
sh CreateXrefDistribution
make[1]: Entering directory `/xrefactory-1.6.10-src/xref-any/src’
make -C ../lib/zlib libz.a
make[2]: Entering directory `/xrefactory-1.6.10-src/xref-any/lib/zlib’
cc -O   -c -o adler32.o adler32.c
cc -O   -c -o compress.o compress.c
cc -O   -c -o crc32.o crc32.c
cc -O   -c -o gzio.o gzio.c
cc -O   -c -o uncompr.o uncompr.c
cc -O   -c -o deflate.o deflate.c
cc -O   -c -o trees.o trees.c
cc -O   -c -o zutil.o zutil.c
cc -O   -c -o inflate.o inflate.c
cc -O   -c -o infblock.o infblock.c
cc -O   -c -o inftrees.o inftrees.c
cc -O   -c -o infcodes.o infcodes.c
cc -O   -c -o infutil.o infutil.c
cc -O   -c -o inffast.o inffast.c
ar rc libz.a adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o zut
il.o inflate.o infblock.o inftrees.o infcodes.o infutil.o inffast.o
make[2]: Leaving directory `/xrefactory-1.6.10-src/xref-any/lib/zlib’
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o cgram.o cgram.c
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o main.o main.c
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o globals.o globals.c
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o misc.o misc.c
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o semact.o semact.c
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o commons.o commons.c
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o generate.o generate.c
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o enumTxt.o enumTxt.c
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o complet.o complet.c
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o cxref.o cxref.c
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o cxfile.o cxfile.c
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o lex.o lex.c
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o yylex.o yylex.c
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o cexp.o cexp.c
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o options.o options.c
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o caching.o caching.c
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o javagram.o javagram.c
In file included from y.tab.c:2465:
recyacc.h:20:1: warning: “yylval” redefined
../../src/javagram.y:8:1: warning: this is the location of the previous definiti
on
recyacc.h:21:1: warning: “yydebug” redefined
../../src/javagram.y:21:1: warning: this is the location of the previous definit
ion
recyacc.h:22:1: warning: “yynerrs” redefined
../../src/javagram.y:22:1: warning: this is the location of the previous definit
ion
recyacc.h:23:1: warning: “yyerrflag” redefined
../../src/javagram.y:23:1: warning: this is the location of the previous definit
ion
recyacc.h:24:1: warning: “yychar” redefined
../../src/javagram.y:24:1: warning: this is the location of the previous definit
ion
recyacc.h:25:1: warning: “lastyystate” redefined
../../src/javagram.y:25:1: warning: this is the location of the previous definit
ion
recyacc.h:26:1: warning: “yyssp” redefined
../../src/javagram.y:26:1: warning: this is the location of the previous definit
ion
recyacc.h:27:1: warning: “yyval” redefined
../../src/javagram.y:27:1: warning: this is the location of the previous definit
ion
recyacc.h:28:1: warning: “yyss” redefined
../../src/javagram.y:28:1: warning: this is the location of the previous definit
ion
recyacc.h:29:1: warning: “yyvs” redefined
../../src/javagram.y:29:1: warning: this is the location of the previous definit
ion
recyacc.h:30:1: warning: “yyvsp” redefined
../../src/javagram.y:31:1: warning: this is the location of the previous definit
ion
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o jsemact.o jsemact.c
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o cfread.o cfread.c
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o cct.o cct.c
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o init.o init.c
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o editor.o editor.c
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o refactory.o refactory.c
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o yaccgram.o yaccgram.c
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o html.o html.c
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o extract.o extract.c
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o classh.o classh.c
gcc -c -O -I../src -I../lib/zlib -I. -DDEBUG -DUSE_LIBZ -DBIN_RELEASE -DPRESERVE
_C_ARGS -D__mygnulinux__   -c -o jslsemact.o jslsemact.c
gcc  -o xref cgram.o main.o globals.o misc.o semact.o commons.o generate.o enumT
xt.o complet.o cxref.o cxfile.o lex.o yylex.o cexp.o options.o caching.o javagra
m.o jsemact.o cfread.o cct.o init.o editor.o refactory.o yaccgram.o html.o extra
ct.o classh.o jslsemact.o ../lib/zlib/libz.a
echo -e “\n\t\t\t\tnormal end of make\n”

normal end of make

make[1]: Leaving directory `/xrefactory-1.6.10-src/xref-any/src’
cp: `src/xref’ and `../xref/xref’ are the same file

Administrator@lizongbo /xrefactory-1.6.10-src/xref-any
$

—————-

4.将D:\cygwin\xrefactory-1.6.10-src\xref下的xref.exe 复制到D:\cygwin\
(不复制到这里的话,会出现目录找不到的情况,导致html生成不了)
4.将要转换出html的java代码复制到D:\cygwin\下面
(cygwin 中 /docs/sms/src对应windows下的 D:\cygwin\docs\sms\src)

5.运行xref.exe
Administrator@lizongbo /
$ cd /

Administrator@lizongbo
$ xref -java2html -stderr -html -nostdop -nocxfile -javafilesonly -mf20 -htmlgxlist -htmllxlist -htmldirectx -refalphahash -htmllinenums -htmlcutsuffix -htmlgenjavadoclinks -htmllinenumlabel=line. -jdkclasspath D:\Java\jdk1.6.0_03\jre\lib\rt.jar -d “/docs/sms/java2html” “/docs/sms/src” -htmljavadocpath=http://download.java.net/jdk/jdk-api-localizations/jdk-api-zh-cn/publish/1.6.0/html/zh_CN/api

html就全部生成了。

将java的源代码拿来生成在线查看。

xref -java2html -stderr -html -nostdop -nocxfile -javafilesonly -mf20 -htmlgxlist -htmllxlist -htmldirectx -refalphahash -htmllinenums -htmlcutsuffix -source 1.4 -htmlgenjavadoclinks -htmllinenumlabel=line. -jdkclasspath D:\Java\jdk1.6.0_03\jre\lib\rt.jar -d “/docs/java” “/docs/javasrc” -htmljavadocpath=http://618119.com/docs/java/java2html

不过根据生成的代码来看,
页面最下方显示的还是: Html form generated by Xref-Java2Html version 1.4.0
貌似被1.6.10忽悠了。

相关下载资源:

Xref-Java2Html:

http://www.xref-tech.com/java2html/main.html

http://www.xref-tech.com/xrefactory/ftp/xref-java2html-i86pc-windows.jar

http://www.xref-tech.com/xrefactory/ftp/xref-java2html-i86pcWindows.zip
http://www.xref.sk/xrefactory-java/main.html

src-highlite:

http://jaist.dl.sourceforge.net/sourceforge/gnuwin32/src-highlite-2.1.2.exe

java2html:
http://java2html.de/
http://www.java2html.de/java2html_50.zip

The Java2HTML Tool:
http://www.java2html.com/
http://www.java2html.com/Java2HTML.zip

基于Axis的WebService测试,开发,部署

Filed under: Java,JAVA IDE — 标签:, , , , — lizongbo @ 09:01

前段时间给同事做了简单的WebService开发培训,效果不太理想。
因此把当时准备的资料备份一下,避免清理硬盘的时候弄没了。

带抓图的word文档在:http://618119.com/docs/WebService/Webservice_axis_dev.doc

http://618119.com/docs/WebService/soaptest.html

下面是从word里保存出来的文字:
1 WebService 测试
不编写代码的情况下,对webservice进行测试,编写代码进行测试的方法.
1.1 使用xmlspy测试接口
测试webservice接口地址为:
http://www.webservicex.net/globalweather.asmx?WSDL
http://www.ayandy.com/Service.asmx?WSDL
http://www.ayandy.com/Service.asmx/getSupportProvince

http://www.ayandy.com/Service.asmx?op=getSupportCity

在xmlspy中的测试步骤:
1. 启动XmlSpy,主菜单–>SOAP –> Create new SOAP request.

2. 选择wsdl文件或者提供wsdl的网址:

3. 选择要测试的方法

4. 填写调用参数

5. 发送请求

6. 查看服务端返回的结果

7. 由于wsdl描述的webservice入口和我们要连接的服务器不一定是同一个地址,因此还可以改变连接参数

8. 因此
参考: http://www.altova.com/products/xmlspy/soap_test_debugger.html

这种方式的优点是:门槛低,只要会填参数就可以测试webservice。
缺点是:xmlspy不是免费的,xmlspy文件超大,携带不方便。无法查看http header.
1.2 用tcpmon测试捕获SOAP数据包
工具来源,下载地址:
http://apache.mirror.phpchina.com/ws/commons/tcpmon/1_0/tcpmon-1.0-bin.zip

优点,文件小巧,不只是测试webserice可以用,测试其它http接口也很方便。
缺点,没法设置contenttype,所以会有乱码。
1.3 用xmlhttp发送SOAP数据包

优点,简单的html可以存放在各地,可以在预先准备好SAOP数据的情况下,将该测试用例发给工程人员在现场进行测试。
缺点,soap数据要靠自己组装。

2 WebService开发
2.1 客户端代码开发
2.1.1 Wsdl2java命令方式
2.1.1.1 预备wsdl2java.bat
wsdl2java.bat的内容为:
%JAVA_HOME%/bin/java.exe -classpath “./axis-ant.jar;./axis.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.WSDL2Java  -v -n -O -1 -D -W -t -a -o E:\mywork\wsdl2javatest\src http://www.webservicex.net/globalweather.asmx?WSDL

(没有 –s –S两个选项, -s用来生成服务端代码,使用-s后, -t无效).
-o是原代码输出的地方。
2.1.1.2 在Jbuilder新建空白工程.
2.1.1.3 导入Axis和Junit的lib.
2.1.1.4 运行wsdl2java.bat
2.1.1.5 在Jbuilder中测试代码
2.1.1.6 以Ant方式运行WSDL2Java

wsdl2java.xml的配置为:

<?xml version=”1.0″ encoding=”UTF-8″?>
<project xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
default=”buildclient” xsi:type=”project”>
<path id=”axis.classpath”>
<fileset dir=”./”>
<include name=”**/*.jar” />
</fileset>
</path>
<taskdef resource=”axis-tasks.properties”  classpathref=”axis.classpath” />

<!– http://10.108.20.207:8080/test/services/Version?wsdl –>
<!– http://www.ayandy.com/Service.asmx?WSDL –>
<target name=”buildclient”>
<axis-wsdl2java
url=”http://www.ayandy.com/Service.asmx?WSDL”
output=”E:/mywork/testwebws/classes/ws-gen/src”
all=”true”
debug=”true”
deployscope=”Request”
helpergen=”true”
noimports=”false”
serverside=”false”
skeletondeploy=”false”
testcase=”true”
timeout=”-1″
typemappingversion=”1.1″
verbose=”true”
noWrapped=”true”>
<!–mapping
namespace=”http://10.108.20.207:8080/test/services/Version” package=”com.test.services.Version”/>
<mapping namespace=”http://xml.apache.org/xml-soap” package=”org.apache.xml.xml_soap”/ –>

<classpath refid=”axis.classpath”/>
</axis-wsdl2java>
</target>
</project>

2.1.2 完全在Jbuilder中开发客户端代码
2.1.2.1 新建客户端工程.
点Finish.
2.1.2.2 新建Axis Web Services Client Configuration.
2.1.2.3 将Jbuilder自带的Axis1.2 lib升级为1.4版本
1.4版本生成的代码和 1.2有所不同。
2.1.2.4 创建Webservice Client
2.1.2.4.1 导入 WSDL文件方式一 — 直接填写URL
输入url之后,鼠标点到”Opeerations”,系统会自动读取url的内容。
url例子:http://www.webservicex.net/globalweather.asmx?WSDL

可以看到能够调用的WebService方法:
2.1.2.4.2 导入 WSDL文件方式二– 导入WSDL文件
2.1.2.4.3 直接操作
点击感叹号,直接选择
2.1.2.5 生成客户端代码
2.1.2.6 进行单元测试
2.1.2.6.1 察看生成好的测试代码.
2.1.2.6.2 补充测试代码
生成的测试代码只是测试框架,需要补充具体的测试代码
//TBD
就是需要补充代码的地方
补充了测试代码之后:

2.1.2.6.3 运行单元测试
2.1.2.6.4 观察单元测试结果
2.1.2.7 捕获单元测试数据包
2.1.2.7.1 启动捕获数据的代理服务器
双击运行 tcpmon.bat
使用 listener模式,Listen Port 填写 8080
Target Hostname为刚才察看到的远程ip
TargetPort 为80.
点“Add”.
察看监控面板。
2.1.2.7.2 修改测试代码的目标地址
2.1.2.7.3 运行单元测试
2.1.2.7.4 察看监控得到的数据
观察http请求的头信息.
2.1.2.8 捕获html测试数据包
2.2 服务端代码开发
2.2.1 基于Axis开发服务端
2.2.1.1 新建服务端工程.
2.2.1.2 新建服务端接口声明(可选).
2.2.1.3 新建服务端实现类.
填写实现代码
2.2.1.4 通过Jbuilder导出实现类为WebService接口.
必须选J2EE 1.3 ,因为要选择1.4的话,必须实现Remote接口
创建 Axis Server Module.
由于目前没有创建WebApp,因此还需要新建Web Module.
选择 Servlet 2.3 和JSP 1.2。
2.2.1.5 启动WebService服务端
http://localhost:8080/ws/servlet/AxisServlet
http://localhost:8080/ws/services/WsServerImpl?wsdl

2.2.2 在Spring中导出bean为WebService接口.
略。
3 WebService手工部署
3.1 部署Axis
3.1.1 提取Axis的web应用
提取 axis-bin-1_4.zip\axis-1_4\webapps\axis
到 E:\apache-tomcat-6.0.14\webapps\axis
3.1.2 启动Tomcat并检查axis是否正常
3.2 发布WebService
3.2.1 查看现有部署的服务
命令行为:
%JAVA_HOME%/bin/java.exe -classpath “E:\mywork\wsserver\classes;./axis-ant.jar;./axis.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.client.AdminClient  -d -lhttp://localhost:8080/axis/servlet/AxisServlet list

3.2.2 编写部署描述文件 axis.wsdd

<?xml version=”1.0″ encoding=”UTF-8″?>
<deployment xmlns:java=”http://xml.apache.org/axis/wsdd/providers/java”
xmlns:handler=”http://xml.apache.org/axis/wsdd/providers/handler”
xmlns=”http://xml.apache.org/axis/wsdd/”
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
name=”defaultClientConfig” xsi:type=”deployment”>
<service name=”WsServerImpl” type=”” regenerateElement=”true”
provider=”java:RPC” style=”rpc” use=”encoded” validate=”true”>
<parameter name=”scope” value=”Request” regenerateElement=”false”/>
<parameter name=”className” value=”com.lizongbo.WsServerImpl” regenerateElement=”false”/>
<parameter name=”allowedMethods” value=”*” regenerateElement=”false”/>
<namespace>http://lizongbo.com</namespace>
</service>
</deployment>

3.2.3 复制class文件
复制E:\mywork\wsserver\classes下面的com目录的文件到
E:\apache-tomcat-6.0.14\webapps\axis\WEB-INF\classes\com
重新启动Tomcat.
3.2.4 命令行方式发布WebService
%JAVA_HOME%/bin/java.exe -classpath “E:\mywork\wsserver\classes;./axis-ant.jar;./axis.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.client.AdminClient  -d -lhttp://localhost:8080/axis/servlet/AxisServlet axis.wsdd
3.2.5 察看部署的服务
http://localhost:8080/axis/servlet/AxisServlet
http://localhost:8080/axis/services/WsServerImpl?wsdl

3.2.6 测试部署的服务
略…
4 附录
4.1 相关资源下载
Axis1.4 :
http://apache.mirror.phpchina.com/ws/axis/1_4/axis-bin-1_4.zip
http://apache.mirror.phpchina.com/ws/axis/1_4/axis-src-1_4.zip
TcpMon 1.0:
http://apache.mirror.phpchina.com/ws/commons/tcpmon/1_0/tcpmon-1.0-bin.zip
http://apache.mirror.phpchina.com/ws/commons/tcpmon/1_0/tcpmon-1.0-src.zip

Ant 1.7.0 :
http://apache.mirror.phpchina.com/ant/binaries/apache-ant-1.7.0-bin.zip

Tomcat 6.0.14:
http://apache.mirror.phpchina.com/tomcat/tomcat-6/v6.0.14/bin/apache-tomcat-6.0.14.zip

XmlSpy 2008 :
http://software.altova.com/download/2008/XMLSpyEnt2008.exe
http://www.jydex.cn/attachments/month_0711/w2007111215514.rar

Spring 2.5:
http://superb-east.dl.sourceforge.net/sourceforge/springframework/spring-framework-2.5-with-dependencies.zip

4.2 相关参考资料
参考: http://www.ibm.com/developerworks/cn/webservices/ws-noide1/
http://www.ibm.com/developerworks/cn/webservices/ws-noide2/
http://www.blogjava.net/pdw2009/archive/2007/10/25/155889.html
http://www.ibm.com/developerworks/cn/webservices/ws-whichwsdl/

4.3 将wsdl生成文档提供给接口调用者
在xmlspy中,打开wsdl文件,
主菜单–> WSDL –> Generate Documentation。

Older Posts »

Powered by WordPress