`

Java 创建简单的WebService

阅读更多
使用Axis开发WebService
1.下载并安装Axis
1)登陆http://axis.apache.org/axis/站点下载Axis
   下载axis-bin-1_4.zip,解压后的目录结构如下:
   

  2)安装Axis
   首先要成功的安装Tomcat,然后将下载的Axis目录下面的webapps中的axis的
   整个文件夹全部拷贝到Tomcat安装目录的Webapps下面
   启动Tomcat,在浏览器中输入http://localhost:8080/axis之后
   显示的界面如下:
  

Axis安装完毕。
2.开发WebService
1)即时发布的WebService
  即时发布提供了一种非常简单的发布方式,发布者只要有Java源代码,然后把其后缀名改成jws,拷贝到%Tomcat_HOME%\webapps\axis下即完成了发布工作。
a)服务端代码:文件名SayHelloServer.java
 
  public class SayHelloServer {

	public String getName(String name){
		return "hello "+name;
	}
  }
  

把SayHelloServer.java文件改为SayHelloServer.jws然后拷贝到%Tomcat_HOME%\webapps\axis目录下,启动Tomcat后访问http://locahost:8080/axis/SayHelloServer.jws可以看到Click to see the WSDL的超链接


说明服务器端已经发布成功,下面开始编写Client端代码。
  b)客户端代码:
package com.wl.webservice.test;

import javax.xml.namespace.QName;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class SayHelloClient {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		try {
			String endpoint="http://localhost:8080/axis/TestClient.jws";
			Service service=new Service();
			Call call=null;
			call=(Call)service.createCall();
			call.setOperationName(new QName(endpoint,"getName"));
			call.setTargetEndpointAddress(new java.net.URL(endpoint));
			String ret=(String)call.invoke(new Object[]{"zhangsan"});
			System.out.println("return value is "+ret);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}


执行客户端的代码结果如下:



总结:即时发布很简单,但是有很多弊端,假如你现在只有.class或者一个jar包,jws就不再能满足你的需求了,最重要的是即时发布不支持带包的类。

2)定制发布的WebService
  定制发布比即时发布更加繁琐和复杂,但是换来的是更大的灵活性。定制发布需要你自己编写一个WSDD(Web Service Deployment Descriptor)文件。
a)服务器端代码:
package com.wl.webservice.test;

public class HelloWorldWsdd {

	public String hello(String name){
		return "hello "+name;
	}
}

这是一个带包的很简单的类,编译好之后将class文件拷贝到%Tomcat_HOME%\webapps\axis\WEB-INF\classes目录下
   b)接下来就是编写发布文件deploy.wsdd,在%TOMCAT_HOME%\webapps\axis\WEB-INF目录下建立这个文件并且在其中添加如下内容:
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<service name="HelloWorldWsdd" provider="java:RPC">
<parameter name="className" value="com.wl.webservice.test.HelloWorldWsdd"/>
<parameter name="allowedMethods" value="hello"/>
</service>
</deployment> 

这个wsdd文件是一个标准的XML文件,包含三个元素:
<deployment>元素制定了wsdd所用的XML命名空间,是这个文件的根。
<service>元素制定了一项SOAP服务。它有两个属性。name指定了这个服务的唯一标志符,provider指定了实现的语言及服务方式。一个wsdd文件可能有多个<service>元素。
<parameter>指定了服务详细信息,是一组name/value对应的值。其中,clcssName指定了实现这个服务的类的名字,allowedMethods指定了这个服务暴露的方法列表。
其中的com.wl.webservice.test是包的名称。
打开cmd命令窗口,进入%Tomcat_HOME%\webapps\axis\WEB-INF目录下面输入如下命令:
java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient -l http://localhost:8080/axis/services/AdminService deploy.wsdd
或者
java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient deploy.wsdd
执行结果如下:


控制台返回Processing file deploy.wsdd 和Done processing 说明发布成功。
并且会在同一级别目录下生成一个service-config.wsdd文件。
发布成功之后,可以通过访问http://localhost:8080/axis/servlet/AxisServlet来查看所有的定制发布的服务。
但是我在通过http://localhost:8080/axis/servlet/AxisServlet查看的时候,页面报一些错误:


出错的原因是:我创建的这个HelloWorldWsdd服务是有包名称com.wl.webservice.test
解决方法:在%Tomcat_HOME%\webapps\axis\WEB-INF\classes下面创建目录com,在com下创建目录wl,在wl下创建目录webservice,在webervice下创建目录test,最后把HelloWorldWsdd.class文件再 拷贝到test目录下面。
重新http://localhost:8080/axis/servlet/AxisServlet查看结果:




备注:发布deploy.wsdd可能会出现的问题:
  I)axis所需要的Jar包如下:


在部署deploy.wsdd的时候会报一个Unable to find required classes的信息,具体:


但是影响不大,要是去掉这个警告信息的话,还需要一个Jar包mail.jar,从相关网站下载后拷贝到%Tomcat_HOME%\webapps\axis\WEB-INF\lib下面,再次重新部署deploy.wsdd就不会再报上面的警告信息了。
参考:http://blog.csdn.net/foamflower/archive/2008/09/08/2897501.aspx
  II)在部署deploy.wsdd的时候Tomcat服务器需要开启,否则会报异常信息:




c)客户端代码如下:
package com.wl.webservice.test;

import javax.xml.namespace.QName;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class HelloWorldWsddClient {

	public static void main(String[]args){
		
		try {
			String uri="http://localhost:8080/axis/services/HelloWorldWsdd";
			Service service=new Service();
			Call call=(Call)service.createCall();
			call.setTargetEndpointAddress(uri);
			call.setOperationName(new QName(uri,"hello"));
			String result=(String)call.invoke(new Object[]{"wanglei and zhangsan"});
			System.out.println("result="+result);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}


执行客户端代码结果如下:



3.取消发布一个WebService
取消一个已经发布的WebService很简单,在发布的时候有个deploy.wsdd文件,那在取消发布的时候需要一个undeploy.wsdd文件即可。
<undeployment xmlns="http://xml.apache.org/axis/wsdd/">
  <service name="HelloWorldWsdd" />
</undeployment> 

将这个文件拷贝到%Tomcat_HOME%\webapps\axis\WEB-INF目录下,然后再控制台输入命令:
java -Djava.ext.dirs=lib org.apache.axis.client.AdminClient undeploy.wsdd 运行结果:




   
  • 大小: 3.3 KB
  • 大小: 31.1 KB
  • 大小: 17.9 KB
  • 大小: 4.3 KB
  • 大小: 4.9 KB
  • 大小: 4.4 KB
  • 大小: 3.1 KB
  • 大小: 6.8 KB
  • 大小: 11.8 KB
  • 大小: 26.9 KB
  • 大小: 6.1 KB
  • 大小: 3.9 KB
分享到:
评论
1 楼 springmvc-freemarker 2015-05-28  
如何在java Web项目中开发WebService接口
http://www.zuidaima.com/question/1925428495420416.htm

相关推荐

    java6创建webservice,原来这么简单啊

    在Java 6中创建Web服务(WebService)是一个相对简单的过程,尤其对于那些熟悉JAX-WS(Java API for XML Web Services)的开发者来说。本文将详细介绍如何利用Java 6的API来构建一个基本的SOAP(Simple Object ...

    java定时进行webservice数据上报

    - 创建WebService客户端:首先,需要根据提供的WebService WSDL(Web Service Description Language)文件生成对应的Java客户端代码,这可以通过IDE插件(如Apache CXF的WSDL2Java工具)或手动编写完成。...

    java实现webservice实例.doc

    "Java实现WebService实例" WebService是基于XML的、分布式的、跨语言的应用程序通信协议。它允许不同的应用程序之间进行交互和集成,从而实现业务逻辑的复杂交互。Java是其中一种常用的实现WebService的语言。 在...

    java 调用 odi webservice

    在我们的示例中,我们将使用 Java 应用程序调用 ODI webservice,执行一个简单的数据同步场景。我们将使用 MYEclipse 作为开发工具,ODI11.1.1.6 作为测试环境。 首先,我们需要创建一个 Java 项目,并添加对 ODI ...

    Java WebService 简单实例 方式一(生成类文件方式)

    在本篇文章中,我们将详细介绍如何通过生成类文件的方式来创建一个简单的 Java WebService 应用程序。这种方式非常适合初学者理解和实践 WebService 的基本概念与工作原理。 #### 二、基础知识回顾 1. **...

    java android 调用webservice

    本篇将详细讲解如何在Android应用中使用Java调用Webservice。 一、理解Web服务 Web服务是一种基于互联网的、标准化的服务交互方式,它允许不同系统之间的应用程序共享数据和功能。常见的Web服务有SOAP(Simple ...

    JAVA 调用SAP SOAP webservice.docx

    在本文中,我们将详细介绍如何使用 JAVA 调用 SAP SOAP webservice,包括配置 SAP 登录信息、创建 java 项目、添加 web 服务客户端、生成 JAVA 类、调用接口等步骤。 配置 SAP 登录信息 在使用 JAVA 调用 SAP SOAP...

    C#调用java发布的WebService终稿.pdf

    C# 调用 Java 发布的 WebService 终稿 C# 调用 Java 发布的 WebService 是一种常见的跨语言通信方式。在本文中,我们将介绍如何使用 C# 调用 Java 发布的 WebService。 标题解释 C# 调用 Java 发布的 WebService ...

    java axis 调用webservice服务端

    1. **创建WebService客户端 stub**:首先,我们需要从服务端提供的WSDL文件生成客户端stub代码。这可以通过Axis的wsdl2java工具完成。运行该工具并指定WSDL文件路径,它将自动生成Java客户端类,这些类包含了调用...

    java 利用webservice传输文件

    在“java 利用webservice传输文件”的场景中,JACOB可能被用来执行以下任务: 1. **文件操作**:Windows系统有许多内置的COM组件,如Scripting.FileSystemObject,可用于读写文件、创建目录等。通过JACOB,Java程序...

    普通java访问c# webService

    在C#中,可以使用.NET框架中的ASMX或WCF服务来创建WebService;而在Java中,我们通常使用JAX-WS或JAX-RS标准来消费这些服务。 在Java中访问C#的WebService,你需要遵循以下步骤: 1. 获取WSDL:首先,你需要获取C#...

    java Webservice 简单实例

    3. **创建WebService** - **定义服务接口**:首先,我们需要定义一个Java接口,使用`@WebService`注解标识为Web服务接口。 - **实现服务接口**:然后,创建一个实现接口的类,这个类会成为服务的实现。 - **部署...

    java调用json参数的webservice

    为了使得Java客户端能够调用WebService服务,需要使用一些工具,例如JAX-WS(Java API for XML Web Services),它是Java SE的一部分,用于创建WebService客户端和服务端。 综上所述,通过Java调用带有JSON参数的...

    利用Java编写简单的WebService实例

    在本文中,我们将详细介绍如何使用 Java 编写简单的 WebService 实例。首先,我们需要了解什么是 WebService,以及如何使用 Java 实现它。 什么是 WebService? WebService 是一种基于网络的分布式系统,可以提供...

    java生成二维码webservice

    Java生成二维码Webservice是一个强大的服务接口,允许外部应用程序通过网络调用来生成二维码图像。这个服务主要依赖于两个流行且功能丰富的库:ZXing(Zebra Crossing)和qrcode.js。ZXing是一个开源Java库,支持...

    Java开发WebService实例

    1. **编写Java类**:创建一个简单的Java类,例如`HelloWorld`,并在`webapps/axis`目录下保存其源码。 2. **生成WSDL文件**:使用`helloworld.jws`文件生成WSDL描述文件,可通过访问`...

    java使用XFire调用webService接口

    下面,我们将通过一个简单的例子,展示如何使用 XFire 调用 webService 接口。 服务端(为客户端提供 webservice 接口) 在服务端,我们需要创建一个 web 服务项目,使用 XFire 框架,并配置好 web.xml 文件。然后...

    java webService接口开发案例

    1. 创建WebService服务端: - 定义服务接口:首先,你需要定义一个Java接口,这个接口包含了Web服务的方法。 - 实现接口:接着,创建一个类实现该接口,实现具体业务逻辑。 - 注解接口和实现类:使用`@WebService...

    SAP&Java的Webservice实例

    在 Java 中,可以使用 Eclipse 和 Axis2 工具来创建 Webservice 客户端,然后使用该客户端来调用 SAP 的 Webservice。 首先,需要下载Axis2 的 jar 包,然后在 Eclipse 中创建一个新的 Java 项目,添加 Axis2 的 ...

Global site tag (gtag.js) - Google Analytics