`
eggbucket
  • 浏览: 186529 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

为你的项目加入webservice(axis)

 
阅读更多

如何使用axis为你的项目加入webservice


前提:已有一个web项目,名为testAxis ,路径:E:/eclipseWork/testAxis

1、下载axis包

http://www.apache.org/dyn/closer.cgi/ws/axis/1_4

下载 axis-bin-1_4.zip

解压到 E:/axis-1_4

2、配置axis

将 E:/axis-1_4/lib 里面的文件拷到 E:/eclipseWork/testAxis/web/WEB-INF/lib 下

编辑 E:/eclipseWork/testAxis/web/WEB-INF/web.xml

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

前加入:

  1. < servlet >   
  2.   < servlet-name > AxisServlet </ servlet-name >   
  3.   < servlet-class > org.apache.axis.transport.http.AxisServlet </ servlet-class >   
  4.  </ servlet >   
  5.  < servlet-mapping >   
  6.   < servlet-name > AxisServlet </ servlet-name >   
  7.   < url-pattern > /servlet/AxisServlet </ url-pattern >   
  8.  </ servlet-mapping >   
  9.  < servlet-mapping >   
  10.   < servlet-name > AxisServlet </ servlet-name >   
  11.   < url-pattern > *.jws </ url-pattern >   
  12.  </ servlet-mapping >   
  13.  < servlet-mapping >   
  14.   < servlet-name > AxisServlet </ servlet-name >   
  15.   < url-pattern > /services/* </ url-pattern >   
  16.  </ servlet-mapping >   
  17.    
  18.  < mime-mapping >   
  19.   < extension > wsdl </ extension >   
  20.   < mime-type > text/xml </ mime-type >   
  21.  </ mime-mapping >   
  22.  < mime-mapping >   
  23.   < extension > xsd </ extension >   
  24.   < mime-type > text/xml </ mime-type >   
  25.  </ mime-mapping >   

 

在向你的项目中加入的WebRoot目录中加入*.jws文件,这时访问你的项目名+*.jws 如:http://localhost/webservice/WSTestImpl.jws?wsdl 成功会在页面中出现wsdl文件

 

还可以如下配置:

编辑tomcat/conf/server.xml

 <Host name="localhost" debug="0" appBase="webapps"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">

后加入:

<Context docBase="E:/eclipseWork/testAxis/web" path="/testAxis" reloadable="true" />

启动tomcat 访问: http://localhost:8080/testAxis/services

可以看到:

And now... Some Services

 3、编写webservice服务端

在web项目下新建一个类

  1. package  com.neo.test;  
  2.   
  3. public   class  HelloWorld {  
  4.  public  String sayHello() {  
  5.   return   "hello" ;  
  6.  }  
  7. }  

4、注册服务

在 E:/eclipseWork/testAxis/web/WEB-INF 下新建文本文件 deploy.wsdd

  1. < deployment   xmlns = "http://xml.apache.org/axis/wsdd/"   xmlns:java = "http://xml.apache.org/axis/wsdd/providers/java" >   
  2.  < service   name = "SayHello"   provider = "java:RPC" >   
  3.   < parameter   name = "className"   value = "com.neo.test.HelloWorld" />   
  4.   < parameter   name = "allowedMethods"   value = "*" />   
  5.  </ service >   
  6. </ deployment >   

启动刚刚配置好的项目,并确保访问http://localhost:8080/testAxis/services 页面显示正常

打开cmd

cd E:/eclipseWork/testAxis/web/WEB-INF


E:/eclipseWork/testAxis/web/WEB-INF>java -Djava.ext.dirs=E:/eclipseWork/testAxis/web/WEB-INF/lib org.apache.axis.client.AdminClient -lhttp://localhost:8080/testAxis/servlet/AxisServlet deploy.wsdd

 

成功的话会显示:

Processing file deploy.wsdd
<Admin>Done processing</Admin>

并在 E:/eclipseWork/testAxis/web/WEB-INF 下面产生 server-config.wsdd 文件

重启tomcat,并访问 http://localhost:8080/testAxis/services  会发现多出来一个service

And now... Some Services

就说明你的配置成功了

 

5、测试webservice

访问 http://localhost:8082/testAxis/services/SayHello?wsdl

  1. <? xml   version = "1.0"   encoding = "UTF-8" ?>   
  2. < wsdl:definitions   targetNamespace = "http://localhost:8082/testAxis/services/SayHello"   xmlns:apachesoap = "http://xml.apache.org/xml-soap"   xmlns:impl = "http://localhost:8082/testAxis/services/SayHello"   xmlns:intf = "http://localhost:8082/testAxis/services/SayHello"   xmlns:soapenc = "http://schemas.xmlsoap.org/soap/encoding/"   xmlns:wsdl = "http://schemas.xmlsoap.org/wsdl/"   xmlns:wsdlsoap = "http://schemas.xmlsoap.org/wsdl/soap/"   xmlns:xsd = "http://www.w3.org/2001/XMLSchema" >   
  3. <!--WSDL created by Apache Axis version: 1.4  
  4. Built on Apr 22, 2006 (06:55:48 PDT)-->   
  5.   
  6.    < wsdl:message   name = "sayHelloRequest" >   
  7.   
  8.    </ wsdl:message >   
  9.   
  10.    < wsdl:message   name = "sayHelloResponse" >   
  11.   
  12.       < wsdl:part   name = "sayHelloReturn"   type = "xsd:string" />   
  13.   
  14.    </ wsdl:message >   
  15.   
  16.    < wsdl:portType   name = "HelloWorld" >   
  17.   
  18.       < wsdl:operation   name = "sayHello" >   
  19.   
  20.          < wsdl:input   message = "impl:sayHelloRequest"   name = "sayHelloRequest" />   
  21.   
  22.          < wsdl:output   message = "impl:sayHelloResponse"   name = "sayHelloResponse" />   
  23.   
  24.       </ wsdl:operation >   
  25.   
  26.    </ wsdl:portType >   
  27.   
  28.    < wsdl:binding   name = "SayHelloSoapBinding"   type = "impl:HelloWorld" >   
  29.   
  30.       < wsdlsoap:binding   style = "rpc"   mce_style = "rpc"   transport = "http://schemas.xmlsoap.org/soap/http" />   
  31.   
  32.       < wsdl:operation   name = "sayHello" >   
  33.   
  34.          < wsdlsoap:operation   soapAction = "" />   
  35.   
  36.          < wsdl:input   name = "sayHelloRequest" >   
  37.   
  38.             < wsdlsoap:body   encodingStyle = "http://schemas.xmlsoap.org/soap/encoding/"   namespace = "http://test.neo.com"   use = "encoded" />   
  39.   
  40.          </ wsdl:input >   
  41.   
  42.          < wsdl:output   name = "sayHelloResponse" >   
  43.   
  44.             < wsdlsoap:body   encodingStyle = "http://schemas.xmlsoap.org/soap/encoding/"   namespace = "http://localhost:8082/testAxis/services/SayHello"   use = "encoded" />   
  45.   
  46.          </ wsdl:output >   
  47.   
  48.       </ wsdl:operation >   
  49.   
  50.    </ wsdl:binding >   
  51.   
  52.    < wsdl:service   name = "HelloWorldService" >   
  53.   
  54.       < wsdl:port   binding = "impl:SayHelloSoapBinding"   name = "SayHello" >   
  55.   
  56.          < wsdlsoap:address   location = "http://localhost:8082/testAxis/services/SayHello" />   
  57.   
  58.       </ wsdl:port >   
  59.   
  60.    </ wsdl:service >   
  61.   
  62. </ wsdl:definitions >   

打开cmd

 

cd E:/eclipseWork/testAxis

 

E:/eclipseWork/testAxis>java -Djava.ext.dirs=E:/eclipseWork/testAxis/web/WEB-INF
/lib org.apache.axis.wsdl.WSDL2Java -oE:/eclipseWork/testAxis/src -pcom.neo.clie
nt http://localhost:8082/testAxis/services/SayHello?wsdl

 

执行后在src下产生 E:/eclipseWork/testAxis/src/com/neo/client 文件夹里面有四个java文件:

HelloWorld.java

HelloWorldService.java

HelloWorldServiceLocator.java

SayHelloSoapBindingStub.java

 

这是根据服务器端提供的wsdl生成的客户端需要的基础文件

 

在com.neo.client下新建一个类

  1. package  com.neo.client;  
  2.   
  3. import  java.rmi.RemoteException;  
  4. import  javax.xml.rpc.ServiceException;  
  5.   
  6. public   class  HelloWorldClient {  
  7.     public   void  testSayHello()  throws  ServiceException, RemoteException{  
  8.         HelloWorldService service = new  HelloWorldServiceLocator();  
  9.         HelloWorld client  = service.getSayHello();  
  10.         System.out.println(client.sayHello());  
  11.     }  
  12.       
  13.     public   static   void  main(String[] args) {  
  14.         HelloWorldClient client = new  HelloWorldClient();  
  15.         try  {  
  16.             client.testSayHello();  
  17.         } catch  (RemoteException e) {  
  18.             e.printStackTrace();  
  19.         } catch  (ServiceException e) {  
  20.             e.printStackTrace();  
  21.         }  
  22.     }  
  23. }  

直接运行,如果打印出 hello 就说明客户端调用成功!

 

转载:http://blog.csdn.net/nsrainbow/article/details/4131196

分享到:
评论

相关推荐

    SpringBoot开发WebService之Axis示例

    而 Axis 是一个流行的Apache项目,用于创建和部署Web服务,它提供了强大的SOAP处理能力。通过整合SpringBoot与Axis,我们可以快速构建高效且易于维护的Web服务。 首先,让我们了解什么是SpringBoot。SpringBoot是...

    Axis1发布webservice服务

    要运行此项目,你需要将这些jar文件加入到项目的类路径中,然后按照上述步骤进行操作。如果遇到问题,可以根据描述中的提示寻求帮助。理解并掌握Axis1发布Web服务的过程,对于开发Java平台上的Web服务非常有帮助,...

    myeclipse8.5使用axis2插件开发webservice服务并调用

    ### 使用MyEclipse 8.5与Axis2插件开发WebService服务及调用详解 #### 一、前言 在Web开发中,WebService作为一种重要的分布式系统实现方式,被广泛应用于不同平台之间的通信。本文将详细介绍如何利用MyEclipse ...

    WebService之Axis2教程

    - 使用Axis2提供的注解或API定义该POJO为WebService。 - 在客户端使用Java或C#语言调用此WebService。 - **意义**:简化开发流程,降低学习曲线,提高开发效率。 #### 六、其他关键技术点 - **复合类型数据传递*...

    axis cxf 创建webservice

    1. 新建一个Web项目命名为`Axis2Demo`。 2. 在项目中创建两个包:`com.ws.server`用于存放服务器端代码,`com.ws.client`用于存放客户端代码。 3. 创建一个简单的服务接口类`HelloWorld.java`,实现服务逻辑: ```...

    webService添加basic验证

    对于基于Axis2框架的WebService来说,可以通过修改项目的`web.xml`文件来实现Basic验证。 ##### 修改`web.xml`文件 1. **定位到`servlet`元素**:找到`web.xml`文件中与你的WebService相关的`servlet`元素。例如,...

    WebService示例(Axis2)

    1. 安装与配置:首先,你需要下载并安装Axis2的最新版本。解压后,将 Axis2的bin目录添加到系统的PATH环境变量中,以便于在命令行中执行相关工具。 2. 创建服务:使用Axis2的wsdl2java工具,你可以从WSDL(Web ...

    axis2和已有web项目集成

    - 在Web项目的`WebRoot`目录下创建一个名为`axis2-web`的新目录,用于存放Axis2的相关文件。 - 复制`axis2.war/axis2-web`目录下的所有文件到新创建的`axis2-web`目录中。 3. **配置Servlet**: - 修改`WebRoot/...

    Axis2(webservice)详细教程教程

    - **Spring集成**:将Spring管理的Bean发布为WebService,简化依赖管理和配置。 - **异步调用**:支持异步处理模式,提高服务响应速度和并发处理能力。 - **模块开发**:允许开发者编写自定义模块,扩展Axis2的功能...

    axis2常见异常总结

    如果我们想传递 Date 类型参数给 Axis2 创建的 WebService 方法,那么需要先将 Date 类型转换为 String 类型再传递。例如,我们可以将”2012-12-28 7:21:33”传给 WebService 方法。 10. 使用 invokeRobust 调用...

    Axis2集成Spring发布WebServices服务

    - 安装完成后,根据实际需求从二进制包中复制必要的文件至项目中。 ##### 2. web.xml配置 - 在`web.xml`文件中,需要配置两个Servlet:`AxisServlet` 和 `AxisAdminServlet`。 - `AxisServlet`负责处理所有与Web...

    如何在eclipse的 Axis插件自动生成的webService相关文件中加入SOAP-HTTP信息

    NULL 博文链接:https://cydia.iteye.com/blog/701773

    axis2-1.6.2.zip

    3、设置环境变量,加入AXIS2_HOME=&lt;Axis2客户端安装目录&gt;,path中追加;%AXIS2_HOME%\bin 4、打开cmd,执行命令 wsdl2java -uri ...

    webservice发布及调用

    本文将详细介绍 WebService 的四种常见发布方式:CXF、XFire、Axis2 和 Axis1,并探讨如何通过客户端进行调用。 #### 二、CXF 方式 ##### 2.1 搭建环境 CXF 与 Spring 结合使用是当前流行的 WebService 构建方案之...

    eclipse中使用webservice远程服务 超详细教程

    3. **WebService Server**:可以是Apache Axis2、JBoss、Tomcat等支持WebService的服务器。 #### 三、创建WebService项目 1. **新建项目**: - 在Eclipse中选择“File”-&gt;“New”-&gt;“Dynamic Web Project”,按照...

    eclipse下开发axis2

    ### Eclipse 下开发 Axis2 Web 服务的详细指南 #### 一、环境搭建与配置 ...通过以上步骤,你就可以在 Eclipse 中成功地开发和部署 Axis2 Web 服务了。这种方式不仅提高了开发效率,还简化了部署过程。

    axis2-JAR包

    Axis2是Apache软件基金会开发的一款开源的Web服务框架,它主要用Java语言编写,用于构建高效、可扩展的Web服务。...无论你是创建新的服务还是集成已有的服务,了解和掌握Axis2都将极大地提升你的工作效率和项目质量。

    axis-1.4.zip

    在实际开发中,开发者通常会将这些库文件加入到项目的类路径中,然后使用Axis提供的工具和API来实现Web服务的开发。例如,使用wsdl2java工具可以自动生成Java客户端代码,而 AxisServlet 和 AxisClient 则用于在...

    学习AXIS2遇到的一个问题与解决

    ### 学习AXIS2遇到的问题与解决方案 ...这不仅能够提高开发效率,还能够避免因错误而导致的项目延期等问题。对于初学者来说,这是一个非常宝贵的经验,同时也提醒我们在面对类似问题时应该采取怎样的解决策略。

Global site tag (gtag.js) - Google Analytics