webservice发布服务:AXIS2及客户端调用

1.Axis2:

到官网下载axis2的压缩包。

解压后:

1.将lib文件下的jar包复制到项目中

2.在web-inf下创建services->META-INF->services.xml,并将压缩包中的services.list、version-1.7.4.aar复制到services文件夹下

3.编写services.xml文件,配置发布的接口,格式如下:

<?xml version="1.0" encoding="UTF-8"?>
<service name="testService" targetName="http://cn.itcast.test">
    <parameter name="ServiceClass">cn.itcast.test.Test</parameter>
    <operation name="add">
        <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
    </operation>
    <operation name="aaa">
        <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
    </operation>
    <!-- <operation name="saySorry">
        <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
    </operation>
    <operation name="getWorld">
        <messageReceiver class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
    </operation>   -->
</service>

4.将编写好的services.xml文件替换version-1.7.4.arr中的services.xml文件(可以将version-1.7.4.arr修改后缀为zip然后打开找到services.xml文件并替换)

5.web.xml文件中配置axis2的servlet过滤器,格式如下:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                             http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         version="2.5">
    <display-name>Apache-Axis2</display-name>
    <servlet>
        <display-name>Apache-Axis Servlet</display-name>
        <servlet-name>AxisServlet</servlet-name>
        <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <!-- <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>/servlet/AxisServlet</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>*.jws</url-pattern>
    </servlet-mapping>
 -->
    <servlet-mapping>
        <servlet-name>AxisServlet</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>

    <!-- <servlet-mapping>
        <servlet-name>AxisAdminServlet</servlet-name>
        <url-pattern>/axis2-admin/*</url-pattern>
    </servlet-mapping>

    <mime-mapping>
        <extension>inc</extension>
        <mime-type>text/plain</mime-type>
    </mime-mapping>
 -->
   <welcome-file-list>
      <welcome-file>index.jsp</welcome-file>
      <welcome-file>index.html</welcome-file>
      <welcome-file>/axis2-web/index.jsp</welcome-file>
    </welcome-file-list>

    <error-page>
      <error-code>404</error-code>
      <location>/axis2-web/Error/error404.jsp</location>
    </error-page>

    <error-page>
        <error-code>500</error-code>
        <location>/axis2-web/Error/error500.jsp</location>
    </error-page>
</web-app>

启动服务器,访问接口的wsdl文档:http://localhost:8080/axis2Server/services/testService?wsdl,如果能访问到网页版xml格式文档,说明接口发布成功。

客户端生成代码及调用:

去官网下载axis2-1.7.4-bin里面有bin文件,bin文件下有各种以.bat为后缀的命令文件,新建一个自定义.bat文件,一般起名为generateCode.bat(中文:生成代码),文件中的内容如下:

wsdl2java -uri http://localhost:8080/axis2Server/services/testService?wsdl -p axis2.service.server -o e:\cn;

上面语句的意思是:axis2.service.server是目录结构;e:\cn是生成在e盘的cn文件夹下。

然而上面的wsdl2java命令需要配置环境变量才能执行,配置环境变量如下:

系统变量下新建变量名:AXIS2_HOME值:E:\axis2-1.7.4-bin\axis2-1.7.4;

将AXIS2_HOME配置在Path中:%AXIS2_HOME%\bin;

这样AXIS2的环境变量就配置好了,运行自定义的generateCode.bat文件即可生成代码。

Axis2客户端调用代码:

package cn.itcast.client;

import java.rmi.RemoteException;

import axis2.service.server.TestServiceStub;

public class Client {
 public static void main(String[] args) throws Exception {

  System.out.println(new Client().aa());
  System.out.println(new Client().bb());

 }

 public String aa() throws Exception {
  //stub类
  TestServiceStub testServiceStub = new TestServiceStub();
  //Add方法名:作为一个类new出来
  TestServiceStub.Add add = new TestServiceStub.Add();
  //将new出来的方法名类作为参数放在要调用的方法里
  testServiceStub.add(add);//此处的代码可省略,因为下面已经连写了testServiceStub.add(add).get_return();

  return testServiceStub.add(add).get_return();
 }

 public String bb() throws RemoteException{

  TestServiceStub testServiceStub = new TestServiceStub();
  TestServiceStub.Aaa aaa = new TestServiceStub.Aaa();
  aaa.setA("你好周杰伦");

  return testServiceStub.aaa(aaa).get_return();
 }
}
时间: 2024-12-05 23:54:39

webservice发布服务:AXIS2及客户端调用的相关文章

搭建基于asp.net的wcf服务,ios客户端调用的实现记录

一.写wcf 问题: 1.特定的格式 2.数据绑定 3.加密解密 二.发布到iis 问题: 1.访问权限问题,添加everyone权限 访问网站时:http://localhost/WebbUploadSample/ZipUpload.aspx “/WebbUploadSample”应用程序中的服务器错误. -------------------------------------------------------------------------------- 访问被拒绝. 说明: 访问服

spring mvc + mybaties + mysql 完美整合cxf 实现webservice接口 (服务端、客户端)

spring-3.1.2.cxf-3.1.3.mybaties.mysql 整合实现webservice需要的完整jar文件 地址:http://download.csdn.net/detail/xuxiaoyu__/9868032 整合的过程其实很简单,通过简单的配置就可以,但是可悲的是 一堆问题都是由于jar缺失或者jar版本冲突引起的,所以附上全部jar文件 ↑↑↑ 发布webservice服务: 第一步:编写接口和实现类 PlcDataDetail.java 1 package test

webservice发布--使用axis2发布

如何使用axis2发布webservice? axis2发布webservice分为打包发布和不打包发布两种,今天主要研究了一下打包发布的方法 1.部署axis2框架(使用tomcat部署) 1.1 下载axis2的war包,测试使用的war包为axis2-1.6.2-war.zip,解压获得axis2.war包 1.2 将axis2.war包拷贝到%Tomcat_Home%/webapps目录下,然后启动tomcat,启动成功之  后访问http://localhost:8080/axis2,

webservice的服务端和客户端

package webservice; import javax.jws.WebService; import javax.xml.ws.Endpoint; /** * Created by Lenovo on 2017/11/23. */ @WebService public class Findservice { public String transferString(String word){ return "tansfer"+word; } public static voi

webservice发布问题,部署iis后调用不成功

我使用的环境win8.vs2010.IIS8.0 vs2010中创建的webservice中的方法可以正常调用,但是发布到IIS上后,asmx文件能正常访问, 但是进入方法后, 点击 "调用" 时就出现了问题.  无法返回正确的调用结果. 解决方法:对应的应用池,设置高级设置-->进程模型-->标识-->设置localsystem 设置后就可以了,本方法只供参考,我的问题是解决了,不知道还有没有其他问题.

webservice发布服务:CXF及客户端调用

2.CXF:(与spring整合) CXF相对来说操作没有AXIS繁琐 1.导入spring的jar包和cxf的jar包 2.在spring的核心配置文件中配置发布的接口类 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.o

C#开发WEBService服务 C++开发客户端调用WEBService服务

编写程序 http://blog.csdn.net/u011835515/article/details/47615425 遇到问题及解决方法: HTTP 错误 500.19- Internal Server Error 错误解决方法 http://www.jb51.net/article/28160.htm HTTP 错误 403.14 - Forbidden Web 服务器被配置为不列出此目录的内容. 如果不希望启用目录浏览,请确保配置了默认文档并且该文件存在. 使用 IIS 管理器启用目录

dubbo 服务端和客户端调用

下面是一种客户端和服务端的调用链,可能会走到其他分支,但是通过这一条链路,可以观察dubbo的整体脉络. 服务端: 客户端:

webservice -- cxf客户端调用axis2服务端

背景: 有个项目, 需要由第三方提供用户信息, 实现用户同步操作, 对方给提供webservice接口(axis2实现)并也使用axis2作主客户端调用我方提供的webservice接口 起初, 由于项目使用了spring, 且spring可与cxf较好的集成, 所以也就选用了cxf, 可问题随之出现, 接口可以调用到, 接口的具体方法也可以调用到, 但是, 1. cxf作为客户端, 获取服务端返回值时均为null. 2. cxf作为服务端, 获取axis2客户端传来的参数时, 也均为null.