您的位置:首页 > 其它

Web Service环境配置过程

2013-07-02 22:36 197 查看
参考文档http://wenku.baidu.com/view/12501ed7195f312b3169a54b.html
http://www.blogjava.net/tianchijiaozi/archive/2013/03/15/396452.html
前几天配置web server环境,在自己的电脑上配置的很顺利,结果在单位的电脑上配了好长时间,遇到了好多问题,网上找都找不到,最后自己慢慢摸索出来了。总结遇到的问题,主要是jdk版本和tomcat版本的匹配问题,当然还有其他问题。今天在“肆
无 忌 惮 德 、 无 视 一 切”同学写的文章的基础上,标出自己遇到的问题和解决方法,供大家参考。
1:准备:

JDK:http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1902814.html

eclipse:http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/juno/SR2/eclipse-jee-juno-SR2-win32.zip
tomcat:http://tomcat.apache.org/download-60.cgi

axis2:http://axis.apache.org/axis2/java/core/download.cgi

eclipse的官方提供的axis插件工具,可以打包aar文件和生成客户端调用代码:http://axis.apache.org/axis2/java/core/tools/index.html

其中的Service Archive Wizard - Eclipse Plug-in和Code Generator Wizard - Eclipse Plug-in

下载完成的软件如图1.1



图1.1
2:配置环境:

2.1:配置java环境变量(不赘述)。

2.1:eclipse中axis2环境配置:Window->Perferences->Web Services->Axis2 perferences->Axis2 Runtime->Axis2 Runtime location,Browse选择解压axis2-1.6.2-bin.zip得到的axis2-1.6.2文件目录。如图2.1。



图2.1
这里描述一下我遇到的问题。我配置这个环境的时候,第一次在我的笔记本上配置的,按照这个顺序下来,一切都很顺利,但是到单位的电脑上配置的时候遇到了很多问题。比如这个地方,在我的eclipse window preferences 里面根本找不到web services。最后发现是因为jdk的版本和tomcat的版本不统一还有环境变量设置有问题,重新调整了一下jdk的版本和环境变量,web services
出现了。

2.2:安装插件:解压axis2-eclipse-codegen-plugin-1.6.2.zip和axis2-eclipse-service-plugin-1.6.2.zip,把得到的两个jar包放入eclipse目录下的\plugins\中,重启eclipse。

2.3:配置tomcat:解压apache-tomcat-6.0.36-windows-x64.zip(不赘述)。

2.4:eclipse中tomcat配置:Window->Perferences->Server->Runtime Environments添加。

3:发布axis2:

3.1:解压axis2-1.6.2-war.zip获得axis2.war并把它放到tomcat解压目录的webapps文件夹下,启动tomcat,浏览器中输入http://localhost:8080/axis2/,出现图3.1,说明配置成功。



图3.1

3.2:用eclipse的axis2插件发布web服务。

3.2.1 在eclipse中new一个Dynamic Web Project,取名webserviceService。编写一个简单的webService服务器代码

1 package org.web.service;

2

3 public class HelloWorldService {

4 public String sayHello(String name){

5 return "Hello," + name;

6 }

7 }

8
3.2.2 在eclipse的空白workspace处,右键new->Other,在弹出的对话框中,找到Axis2 Service Archiver,双击->选择HelloWorldService所在项目的class路径,如图3.2



图3.2

next->选中skip WSDL,Next->什么都不填NEXT->选中Generate the service xml automatically,NEXT->



图3.3

如如图3.3填写HelloWorldService类的全路径,点击load,在下面的Method表中出现sayHello说明load成功,点击NEXT->



图3.4

填写Output file location,点击Finish,如图3.4。

3.2.2 右键点击webServiceService项目,刷新。出现my_service.aar文件,如图3.5。



图3.5

把此aar文件放到%tomcat_home%\webapps\axis2\WEB-INF\services下。浏览器中输入http://localhost:8080/axis2/services/HelloWorldService?wsdl,出现图3.6,说明发布成功。



图3.6
这一步,在配置的过程中也出现了问题,一直报错resources not found,经排查,发现是tomcat中对应的jdk版本问题,本来是在eclipse中用jdk1.6编译的,结果tomcat中的jdk用的是1.5,导致一直报错resources
not found。

4:用eclipse的Web Service Client生成客户端调用代码。

4.1:在eclipse的空白workspace处右键new->Other->Web services->Web Service Client,选中,点击NEXT->出现图4.1


图4.1

service definition填发布好的wsdl路径http://localhost:8080/axis2/services/HelloWorldService?wsdl,
这个地方在配置的时候也出现了问题,错误提示:the server is not valid,经排查,发现是eclipse中window perferences server 中tomcat的jre版本与eclipse中jdk版本不统一,统一改为jdk1.6之后,问题得到解决。
Client type默认,下面的下滑快拉到最上面,点击Server runtime:Tomcat v6.0 Server出现图4.2:



图4.2

在Server runtime中选择默认,Web service runtime选择Apache Axis2,点击Ok,返回图4.1,点击Client project:webServiceClient,出现图4.3


图4.3

在Client project的下拉列表中选择客户端代码存放的项目,本例选择webServiceClient。点击OK,返回图4.1,点击NEXT,进入下一个环节,然后点击Finish。

,

图4.4

如图4.4,在src的source folder下出现org.web.service包,下面有HelloWorldServiceCallBackHandler.java和HelloWorldServiceStub.java文件,Web App Libraries也有更新,在WebContent目录下也出现axis2-web文件夹,以及WEB-INF等的更新。

4.2:写webService调用代码。

在webServiceClient项目中新建一个客户端测试文件如下:

1 package org.web.client;

2

3 import java.rmi.RemoteException;

4

5 import org.web.service.HelloWorldServiceStub;

6 import org.web.service.HelloWorldServiceStub.SayHelloResponse;

7

8 public class HelloWorldClient {

9

10 /**

11 * @param args

12 * @throws RemoteException

13 */

14 public static void main(String[] args) throws RemoteException {

15 String target = "http://localhost:8080/axis2/services/HelloWorldService";

16 HelloWorldServiceStub stub = new HelloWorldServiceStub(target);

17 // sayHello 为webService提供参数

18 HelloWorldServiceStub.SayHello sayHello = new HelloWorldServiceStub.SayHello();

19 sayHello.setName("jackii");

20 SayHelloResponse eur = stub.sayHello(sayHello);

21 String returnVal = eur.get_return();

22 System.out.println(returnVal);

23 }

24

25 }
运行上面代码Run As->Java Application,输出:

Hello,jackii
说明调用成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: