`
pacer123
  • 浏览: 90775 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

webservice的配置(axis)

 
阅读更多

web系统中通常我们需要为其他系统提供webservice服务,其中依赖jar包文件不做详细描述。

现在就基本配置步骤总结如下:

配置1:在web.xml文件中增加如下代码。

<!-- 配置websercice服务的servlet -->
 <servlet>
  <servlet-name>AxisServlet</servlet-name>
  <servlet-class>
   org.apache.axis.transport.http.AxisServlet
    </servlet-class>
 </servlet>
 <servlet>
  <servlet-name>AdminServlet</servlet-name>
  <servlet-class>
   org.apache.axis.transport.http.AdminServlet
    </servlet-class>
  <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet>
  <servlet-name>SOAPMonitorService</servlet-name>
  <servlet-class>
   org.apache.axis.monitor.SOAPMonitorService
    </servlet-class>
  <init-param>
   <param-name>SOAPMonitorPort</param-name>
   <param-value>5001</param-value>
  </init-param>
  <load-on-startup>2</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>SOAPMonitorService</servlet-name>
  <url-pattern>/SOAPMonitor</url-pattern>
 </servlet-mapping>

 

配置2:在WEB-INF目录下增加server-config.wsdd文件,其中内容为我们需要发布的service服务对象。

<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
 <globalConfiguration>
  <parameter name="sendMultiRefs" value="true"/>
  <parameter name="disablePrettyXML" value="true"/>
  <parameter name="adminPassword" value="admin"/>
  <parameter name="dotNetSoapEncFix" value="true"/>
  <parameter name="enableNamespacePrefixOptimization" value="true"/>
  <parameter name="sendXMLDeclaration" value="true"/>
  <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
  <parameter name="sendXsiTypes" value="true"/>
  <requestFlow>
   <handler type="java:org.apache.axis.handlers.JWSHandler">
    <parameter name="scope" value="session"/>
   </handler>
   <handler type="java:org.apache.axis.handlers.JWSHandler">
    <parameter name="scope" value="request"/>
    <parameter name="extension" value=".jwr"/>
   </handler>
  </requestFlow>
 </globalConfiguration>
 <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
 <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
 <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
 
 <transport name="http">
  <requestFlow>
   <handler type="URLMapper"/>
   <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
  </requestFlow>
  <parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
  <parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/>
  <parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/>
  <parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
 </transport>
 <transport name="local">
  <responseFlow>
   <handler type="LocalResponder"/>
  </responseFlow>
 </transport>

<service name="UserWebService" type="" regenerateElement="true"
    provider="java:RPC" style="rpc" use="encoded">
    <parameter name="scope" value="Request" regenerateElement="false"/>
    <parameter name="className" value="com.demo.webservice.UserWebService" regenerateElement="false"/>
    <parameter name="allowedMethods" value="getUserNameById" regenerateElement="false"/>
</service>

 

完成上述的两个步骤即可完成werbservice的配置,但是具体的service的实现类。根据各自需求完成,这里贴出一部分简要代码

package com.demo.webservice;

/**
 * <p> Title: 用户信息的webservice测试类</p>
 */
public class UserWebService extends ServletEndpointSupport implements IUserWebService{

 

//注意,此处不能通过ioc的方式进行依赖注入,只能通过下面的方式获取到userService的对象。然后进行service层调用(前提是getBean("userService")的userService已经在spring的配置文件中进行了配置)

 private IUserService userService;
 protected void onInit()
 {
  userService =(IUserService)getApplicationContext().getBean("userService");
 }
 
 public String getUserNameById(String userId)
 {
  System.out.println("getUserNameById=123==" + userId);
  String userName="fafa";
  User user = userService.findUserById(userId);
  userName = user.getUsername();
  System.out.println("getUserNameById=123==userName:" +userName );
  return userName;
 }
}

 

 

注意:由于我们的UserWebService 应用了spring的依赖注入,所以其中多了一项public void setUserService的方法,在发布时通过http://localhost:8080/sshdemo/services/UserWebService?wsdl查看生成的wsdl文件时会报错:Namespace   prefixes   must   be   set   on   the   Definition   object   using   the   addNamespace(...)   method.:  
  faultActor:  
  faultNode:  
  faultDetail:  

 

,而我们在发布websercice的时候配置文件中allowedMethods的value值应该只指定我们需要暴漏的方法getUserNameById,而不能用*号代替,否则会出错。

 

一个简单的webservice应用就配置发布好了。通过上面的链接可以查看到生成的xml文件即表示成功。祝你好运。

 

  

 

分享到:
评论

相关推荐

    WebService之axis2案例

    在"WebService之axis2案例"中,我们有两个关键部分:服务端(WebService_server)和客户端(WebService_client)。服务端是提供Web服务的应用程序,它定义了对外公开的接口和业务逻辑,这些接口可以通过SOAP(Simple...

    SpringBoot开发WebService之Axis示例

    5. **配置Axis**:在SpringBoot的配置文件`application.properties`或`application.yml`中,我们可以配置Axis的启动和端口等信息。 6. **编写WSDL**:如果还没有WSDL,我们可以手动编写或使用Axis工具从接口生成。...

    axis2发布webservice和调用axis2服务接口

    1. **创建WebService**:在Axis2中,可以通过编写一个简单的Java类并暴露其方法作为Web服务接口。这个类通常会遵循SOAP协议,定义服务操作。例如,你可以创建一个名为`HelloWorldService`的类,包含一个`sayHello`...

    WebService-Axis2 详细讲解

    WebService-Axis2 详细讲解 WebService是一种基于XML的开放标准,用于在不同的应用程序之间进行通信。它允许不同系统之间的数据交换,打破了平台和语言的界限。Axis2是Apache软件基金会开发的一个高性能、灵活且可...

    ssh1+webservice(axis) 配置框架

    SSH1+WebService(Axis)配置框架是开发企业级Java应用的一种常见组合,它结合了Spring、Struts和Hibernate这三个开源框架的优势,同时利用Axis来实现Web服务的发布和调用。下面将详细介绍这些技术及其在配置框架中...

    WebService:Axis客户端调用需要身份验证的CXF服务

    当Axis客户端需要调用一个需要身份验证的CXF服务时,我们需要配置Axis客户端以正确地传递认证信息。以下是一些关键步骤: 1. **设置认证头**:对于基本或Digest认证, Axis客户端需要在HTTP请求中添加相应的...

    java-webservice-axis-例子

    在这个例子中,我们关注的是使用Apache Axis1.4库来创建和消费Web服务。Apache Axis是Java社区中最常用的Web服务工具之一,它提供了用于生成和部署Web服务的框架。 在Java中,Web服务通常通过SOAP(Simple Object ...

    Axis和WebService配置使用之Hello

    标题中的“Axis和WebService配置使用之Hello”表明我们将探讨如何在Java环境中使用Axis库来创建和使用Web服务,实现一个简单的“Hello World”示例。 Axis是一个开源的Java SOAP(简单对象访问协议)工具包,它允许...

    WebService之Axis2经典教程

    ### WebService之Axis2经典教程 #### 一、概述 随着信息技术的发展,Web Service作为一种重要的分布式计算模式,已经成为实现服务导向架构(SOA)的关键技术之一。Axis2作为一款流行的Web Service引擎,不仅具备高...

    WebService之Axis2实例

    WebService之Axis2实例是Web服务开发中的一个重要环节,它基于SOAP协议,允许不同平台和语言间的应用程序进行通信。本文将详细介绍Axis2实例的创建、配置和运行,以及如何利用Eclipse IDE、JDK 1.7和Tomcat 7.0进行...

    WebService Axis初学者

    WebService Axis是基于Java的Web服务框架,用于创建和部署SOAP(简单对象访问协议)服务。这个初学者指南将深入探讨Axis的基本概念、安装过程、创建第一个WebService以及如何进行调用。 1. WebService简介: ...

    WebService-axis demo

    1. **安装和配置Axis**:下载并安装Apache Axis,确保你的环境已经正确配置了Java和Servlet容器。 2. **解压Demo**:将压缩包解压,找到`webservicTest`文件。 3. **识别文件类型**:`webservicTest`可能是一个Java...

    axis2+spring webservice

    标题中的“axis2+spring webservice”指的是使用Apache Axis2框架与Spring框架集成来开发Web服务。Apache Axis2是Java环境中广泛使用的Web服务引擎,它提供了高性能、灵活且可扩展的架构。Spring框架则是一个全面的...

    java调用webservice的axis2.jar包

    Java调用WebService是Web服务交互的一种常见方式,而Axis2是一个高效的、可扩展的Web服务框架,它在Java世界中广泛用于创建和消费Web服务。本文将深入探讨使用Axis2.jar包来调用WebService的相关知识点。 一、Axis2...

    axis2webservice接口例子

    - 配置Axis2的运行环境,如服务端的axis2.xml设置。 - 创建并使用Axis2的客户端,生成Stub类,调用远程服务。 - 理解SOAP消息的结构和HTTP传输机制。 - 掌握异常处理和日志记录在Web服务开发中的应用。 通过这个...

    java webservice之axis2与spring集成(二)

    - **配置Axis2**:在Axis2的配置文件(如services.xml)中,引用Spring上下文并指定服务Bean。 - **部署服务**:将服务和Spring上下文文件部署到Axis2服务器上。 5. **运行时流程**: 当客户端请求服务时,Axis2...

    WebService -AXIS工程

    将生成的.aar文件部署到支持Servlet的Web服务器(如Tomcat)上的AXIS目录下,然后通过AXIS管理界面或配置文件完成服务注册。 5. 消费WebService: 对于客户端,AXIS提供了soapStubGenerator工具,通过输入服务的...

    Spring集成axis2实现webservice所用到的包

    1. **配置Axis2**:在Spring项目中,首先需要将Axis2的相关库添加到项目的类路径下。这些库通常包括`axis2-*.jar`, `axiom-*.jar`, `neethi-*.jar`, `wsdl4j-*.jar`, `commons-discovery-*.jar`, `commons-logging-*...

    webservice的axis2开发

    通过AXIS2,开发者可以轻松地创建和发布WebService,同时AXIS2提供了丰富的功能,如WS-Security、MTOM和SwA等,以支持复杂的Web服务交互场景。学习AXIS2有助于深入理解WebService开发,并能快速构建实际应用。

    webservice调用axis插件版

    标题"webservice调用axis插件版"指的是使用MyEclipse集成开发环境(IDE)中的Axis插件来调用和创建Web服务。MyEclipse是Eclipse的一个扩展,提供了更多的企业级开发工具,包括对Web服务的支持。 描述"Myeclipse ...

Global site tag (gtag.js) - Google Analytics