走了很多弯路,参考了很多文献,才把这个Math调试完毕。顺便记下,供需要的人参考。
一.软件
操作系统:Vista Ultimate
JDK: C:\Java\jdk1.5.0_03 http://java.sun.com/javase/downloads/index_jdk5.jsp
Axis: C:\axis14 Axis下载:http://archive.apache.org/dist/ws/axis/
Ant: C:\ant170 Ant下载:http://www.apache.org/dist/ant/binaries/
Tomcat : C:\Tomcat5 版本是5.0.28 Tomcat下载:http://tomcat.apache.org/
Python: C:\Python24
axis需要的jar文件下载:
activation.jar下载:http://java.sun.com/products/javabeans/glasgow/jaf.html
Javamail.jar下载:http://java.sun.com/products/javamail/
Xmlsec.jar下载:http://xml.apache.org/security/
二.环境设置:
ANT_HOME=C:\ant170
AXIS_HOME=%CATALINA_HOME%\webapps\axis
AXIS_LIB=C:\jdbc\axis_lib
AXISCLASSPATH=%AXIS_LIB%\axis.jar;%AXIS_LIB%\axis.jar;%AXIS_LIB%\commons-discovery-0.2.jar;%AXIS_LIB%\commons-logging-1.0.4.jar;%AXIS_LIB%\jaxrpc.jar;%AXIS_LIB%\saaj.jar;%AXIS_LIB%\log4j-1.2.8.jar;%AXIS_LIB%\xml-apis.jar;%AXIS_LIB%\xercesImpl.jar;%AXIS_LIB%\xalan.jar;%AXIS_LIB%\xmlsec-1.4.1.jar;%AXIS_LIB%\activation.jar;%AXIS_LIB%\mail.jar;
CATALINA_HOME=C:\Tomcat5
classpath=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;DBCLASSPATH;AXISCLASSPATH
DB_LIB=C:\jdbc\db_lib
DBCLASSPATH=%DB_LIB%\jconn2.jar;
GLOBUS_LOCATION=C:\globus
JAVA_HOME=C:\Java\jdk1.5.0_03
Path=%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%JAVA_HOME%\bin;%ANT_HOME%\bin;%GLOBUS_LOCATION%\bin;%CATALINA_HOME%\bin;
三.安装
1.jdk安装
2.tomcat安装
3.axis安装
4.globus4安装
四.调试
1.调试好jdk
2.调试好tomcat
3.调试好axis
4.调试好globus
五math的调试
math下载地址:http://gdp.globus.org/gt4-tutorial/download/progtutorial-examples_0.2.1.tar.gz
MathQNames.java/MathService.java下载:http://www.blogjava.net/Files/waterjava/globus_Math.rar
这部分参考了网上文献,红色部分是自己加上的:
step1
1 建wsdl文件
即C:\globus\schema\examples\MathService_instance\Math.wsdl
内容就直接从tutorial上拷.
2 建c:\globus\namespace2package.mappings
手册上是说的namespace2package..properties文件,但每次在编译的时侯,都是映射后的命名空间找不着,改成.mappings就OK了.这里注意每条记录只能占一行,而且"http\://"那一"\"不能乱删.
step2 写服务实现类
1 MathQNames.java
内容从手册上拷,文件建在C:\globus\org\globus\examples\services\core\first\impl\MathQNames.java处.
2 MathService.java
内容从手册上拷,文件建在C:\globus\org\globus\examples\services\core\first\impl\MathService.java处.
step3 建WSDD和JNDI部署文件
1 C:/globus/org/globus/examples/services/core/first/deploy-server.wsdd;
2 C:/globus/org/globus/examples/services/core/first/deploy-jndi-config.xml;
step4 生成gar文件
1 将下载的globus-build-service-gt4_0.2.5里面几个文件(globus-build-service.py和build.xml)先拷贝到C:\globus下
2 在C:\globus下运行命令:
globus-build-service.py -d org/globus/examples/services/core/first/ -s schema/examples/MathService_instance/Math.wsdl
如果不成功,估计要先运行d:\ws\etc\globus-devel-env.bat;
成功的话,生成d:\gt4\org_globus_examples_services_core_first.gar
step 5 部署
1 C:\globus下运行:
globus-deploy-gar c:/globus/org_globus_examples_services_core_first.gar
2 关掉tomcat
3 运行globus-start-container -nosec
如果看到你自己的MathServices服务,就说明成功了.
这样你不能通过IE看你的服务,如果要的话,我们可以把他发布到tomcat里面去,你得装Tomcat,然后用以下明明发布到tomcat里面去,ant -f share/globus_wsrf_common/tomcat/tomcat.xml deploySecureTomcat -Dtomcat.dir="C:\Tomcat5"(最后那个目录为你的tomcat的目录)
(注意)重新启动tomcat,输入http://localhost:8080/wsrf/services你就可以看到你服务了!
客户端的开发,有一个问题要注意
System.out.println("Current value:" + math.getValue(new GetValueRP()));
math.getValue修改为math.getValueRP,估计这是作者笔误.
然后是客户端编译命令:
javac -classpath ./build/stubs/classes/;%CLASSPATH% org/globus/examples/clients/MathService_instance/Client.java
如果出现:软件包org.apache.axis.message.addressing不存在;要先运行C:\globus\etc\globus-devel-env.bat;
最后运行检验:
java -classpath ./build/stubs/classes/;%CLASSPATH% org.globus.examples.clients.MathService_instance.Client http://127.0.0.1:8080/wsrf/services/examples/core/first/MathService
出现期望的数字就说明成功了.
可以看到,用了globus-build-service-gt4_0.2.5,执行步骤要比以前少很多.另外,WSDL文件个人认为也可以用Java2WSDL生成,但没有做尝试.\
ps:上传了整个d:/gt4目录.补充一点, 要运行globus-build-service.py需要python环境支持.