`
rayln
  • 浏览: 424398 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

如何建立一个WebService项目

 
阅读更多
(1) 首先新建一个项目,导入Spring和axis包
(2) 修改web.xml文件
<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
  <display-name>contextConfigLocation</display-name>
  <listener-class>
    org.springframework.web.context.ContextLoaderListener
  </listener-class>
</listener>
<servlet>
  <servlet-name>axis</servlet-name>
  <servlet-class>
    org.apache.axis.transport.http.AxisServlet
  </servlet-class>
  <load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>axis</servlet-name>
  <url-pattern>/ws/*</url-pattern>
</servlet-mapping>

(3) 建立applicationContext.xml
<bean id="MathBean" class="test.remote.MathServiceImpl"/>

(4) 配置一个wsdd文件,名称为server-config.wsdd,放在webRoot/WEB-INF/
<?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="adminPassword" value="admin"/>
    <parameter name="sendXsiTypes" value="true"/>
    <parameter name="sendMultiRefs" value="true"/>
    <parameter name="sendXMLDeclaration" value="true"/>
    <parameter name="axis.sendMinimizedElements" 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="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
  <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
  <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
  <!-- 需要修改的配置start -->
  <service name="MathService" provider="java:RPC">
    <parameter name="allowedMethods" value="*"/>
    <parameter name="className" value="test.remote.JaxRpcMathService"/>
    <beanMapping qname="wsdemo:MathVO" xmlns:wsdemo="urn:wsdemo" languageSpecificType="java:test.vo.MathVO"/>
  </service>
  <!-- 需要修改的配置end -->
  <service name="AdminService" provider="java:MSG">
    <parameter name="allowedMethods" value="AdminService"/>
    <parameter name="enableRemoteAdmin" value="false"/>
    <parameter name="className" value="org.apache.axis.utils.Admin"/>
    <namespace>http://xml.apache.org/axis/wsdd/</namespace>
  </service>
  <service name="Version" provider="java:RPC">
    <parameter name="allowedMethods" value="getVersion"/>
    <parameter name="className" value="org.apache.axis.Version"/>
  </service>
  <transport name="http">
    <requestFlow>
      <handler type="URLMapper"/>
      <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
    </requestFlow>
  </transport>
  <transport name="local">
    <responseFlow>
      <handler type="LocalResponder"/>
    </responseFlow>
  </transport>
</deployment>

(5) 编写JaxRpcMathService类
public class JaxRpcMathService extends ServletEndpointSupport implements MathService {
  private MathService mathService;
  protected void onInit() {
    this.mathService = (MathService) getWebApplicationContext().getBean(MathService.BEAN_ID);
  }
  public int add(int x, int y) {
    return mathService.add(x,y);
  }
  public int subtract(int x, int y) {
    return mathService.subtract(x,y);
  }
  public MathVO testVO(MathVO vo) {
    return mathService.testVO(vo);
  }
}

(6) 编写MathService接口类
public interface MathService {
  String BEAN_ID = "MathBean";
  public int add(int x, int y);
  public int subtract(int x, int y);
  public MathVO testVO(MathVO vo);
}

(7) 编写MathServiceImpl实现类
public class MathServiceImpl implements MathService{
  public int add(int x, int y) {
    return x+y;
  }
  public int subtract(int x, int y) {
    return x-y;
  }
  public MathVO testVO(MathVO vo) {
    System.out.println(vo.toString());
    return vo;
  }
}

(8) 客户端代码生成
通过eclipse打开Open Run Dialog

在main class中填入org.apache.axis.wsdl.WSDL2Java

在arguments中填入参数
-p src.com.test.vo http://localhost:8080/wsdemo1/ws/MathService?WSDL
启动tomcat,然后点击run生成代码

(9) 代码生成完毕后编写客户端调用TestMathService类
public class TestMathService {
  public static void main(String[] args) {
    JaxRpcMathServiceService service = new JaxRpcMathServiceServiceLocator();
    JaxRpcMathService client = service.getMathService();
    System.out.println(client.add(1, 2));
  }
}
分享到:
评论

相关推荐

    建立一个WebService工程

    ### 建立一个 WebService 工程 在软件开发领域中,WebService 是一种重要的技术手段,用于实现不同系统间的通信。本文将详细介绍如何利用 MyEclipse 6.5 创建 WebService 工程,包括其配置与部署的过程。 #### 一...

    使用Myeclipse 创建WebService 项目服务端

    下面将详细讲解如何使用MyEclipse创建一个WebService项目服务端,以及涉及的关键知识点。 首先,创建一个新项目是第一步。在MyEclipse中,选择"File" -&gt; "New" -&gt; "Dynamic Web Project",输入项目名称并设置相关...

    一个webservice的创建与调用的例子C#

    在本例中,我们将探讨如何使用C#在Visual Studio 2012中创建和调用一个Web服务。以下是一个详细的过程: 1. **创建Web服务**: - 首先,打开Visual Studio 2012并选择"新建项目"。 - 选择"ASP.NET Web应用程序...

    WebService上传+下载显示图片

    本示例包含2个项目,一个为WebService,另一个是普通ASP.net网站.WebService已经配置好,下载后需要在本机的IIS中建立一虚拟路径,指向WebService的项目,名称要是Services,否则需要在Asp.net网站重新配置WebSercice.

    XFire建立Webservice实例.docx

    要建立一个 Webservice 实例,首先需要创建一个新的 Web 服务项目。在 MyEclipse 中,选择 File -&gt; New -&gt; Project -&gt; Web Service Project,並输入项目名称 hello。然后,在新的工程 hello 上右键,选择 New -&gt; ...

    WebService通用調用方式及源碼

    描述中提到的"提供一個WebService通用幫助類",意味着这个帮助类是一个预先设计好的类库,它封装了与WebService交互的各种操作,如发送请求、解析响应等。开发者可以利用这个帮助类,无需深入了解SOAP(Simple ...

    JSON返回值格式的WebService样例

    在实现这个服务时,首先需要建立一个服务器端的处理程序,它可以是一个Java Servlet、ASP.NET Web API、Python Flask应用或者其他支持HTTP请求处理的技术。这个处理程序会接收客户端的请求,解析请求参数,然后连接...

    XFire建立Webservice实例,入门级别,适合初学者

    【XFire建立Webservice实例详解】对于初学者来说,理解并构建一个Web Service是一个重要的学习步骤,而XFire作为一款曾经流行的开源框架,提供了一种简单的方法来创建和部署Web Service。本文将详细介绍如何利用...

    根据wsdl生成webservice服务端(3种方式)

    MyEclipse是一款集成开发环境,内置了生成WebService项目的功能。以下是操作步骤: 1. **创建项目**:在MyEclipse中创建一个新的Web Service项目,例如命名为`helloworld`。 2. **生成代码**:在项目上右键选择...

    WebService操作数据库实例

    为了将这些方法封装到一个WebService中,我们需要创建一个新的ASMX或WCF服务项目,在其中定义服务接口和服务实现。对于ASMX,服务接口通常定义在`.asmx.cs`文件中,而对于WCF,接口和实现通常分别定义在`.svc.cs`和`...

    Myeclipse 2014 WebService

    创建WebService项目 - 打开MyEclipse 2014,选择“File”-&gt;“New”-&gt;“Other”,在弹出的窗口中选择“WebService Project”。 - 连续点击“Next”三次,直到出现“JAX-WS Library”界面。 - 在“JAX-WS Library”...

    Delphi WebService操作数据库

    首先,打开Delphi IDE,并创建一个新的DLL WebService项目。完成项目创建后,将该项目部署到IIS中运行。 当创建完项目后,会弹出提示询问是否自动创建接口单元。选择“是”(Yes),Delphi将自动生成接口单元。接下来...

    xfire发布webservice

    在服务器端,我们首先需要在开发环境中(本例使用MyEclipse)创建一个新的WebService项目。这一步骤主要涉及项目结构的搭建,包括项目名称的设定以及项目类型的指定。接下来,需要在项目中编写一个具体的类,例如`...

    WebServiceClient

    【WebServiceClient】是一个用于调用Web服务的客户端应用程序示例,它包含了代码实现和相关文档。Web服务是一种基于网络的软件应用,通过标准的XML(可扩展标记语言)进行通信,使得不同系统间的交互变得更加简单和...

    基于CFX开发WebService

    - `ExpenseWebService`接口展示了如何定义一个简单的WebService接口,包含一个获取预算项目的`getItemsString`方法。 - `ExpenseWebServiceImpl`类实现了`ExpenseWebService`接口,提供了具体的业务逻辑。在实际...

    C#利用Socket创建webservice

    1. **设置项目环境**:在Visual Studio 2013中创建一个新的C# Console Application项目,确保目标框架为.NET Framework 3.5或2.0。 2. **导入命名空间**:在代码中,我们需要导入`System.Net`和`System.Net.Sockets...

    EAS-WebService开发指南.pdf

    在本例中,我们使用Eclipse(J2EE版本)创建了一个Java项目,并将下载的WSDL文件拷贝到项目中,然后生成了客户端代理类。 EASLogin 在调用WebService之前,开发者需要通过EASLogin Web服务登录,否则会产生认证...

    Android通过webservice连接Sqlserver实例

    1. 创建WebService:使用ASP.NET或Java等技术,在服务器端创建一个WebService接口,该接口将处理来自Android客户端的请求,如HTTP POST或GET请求。接口应包括对数据库的基本操作,如SELECT、INSERT、UPDATE和DELETE...

    WebService远程访问SQLServer数据库源码

    在本案例中,“WebService远程访问SQLServer数据库源码”是一个实现了利用WebService来远程操作SQL Server数据库的应用。这种方式通常用于跨平台、跨语言的系统集成,使得应用程序能够通过HTTP协议调用远程数据库...

    C#创建和调用WebService详细教程

    UDDI(Universal Description, Discovery, and Integration)是一个主要针对WebService供应商和使用者的新项目。在用户能够调用WebService之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在...

Global site tag (gtag.js) - Google Analytics