Giter Club home page Giter Club logo

june.web.service's Introduction

环境搭建

环境搭建请参考:axis2搭建参考

eclipse环境配置说明

首先需要下载下axis2的zip安装包(Win系统),解到某个目下,如:D:\java\apache\axis2-1.7.4

在eclipse中》WindowPreferencesWeb ServicesAxis2 Preferences,如下图中配置好axis2的目录

配置axis2

其他配置项默认

创建Axis2的开发包

同样在eclipse中转到》WindowPreferencesJavaBuild PathUser Libraries

然后新建New...,起名为axis2,确定后选择刚才建立的axis2包,然后Add External JARs...,将目录D:\java\apache\axis2-1.7.4\lib下的所有jar包添加进来即可。

添加axis2的jar包

然后就参考axis2搭建参考

另外自己搭建的环境需要注意,引入jstl和standard这两个jar包

发布Web Service服务

一开始就提到了,参考axis2搭建参考,对要发布成WebService的类在eclipse中右击选择Web Services》Create Web Service,然后根据向导进行配置发布即可!

下面这几篇文章作为参考:


发布服务注意:

要注意一个services.xml文件,位于WEB-INF/services/XXXService/META-INF/目录下,举个例子,注意写法

<service name="CalculateService" >
	<Description>
		Please Type your service description here
	</Description>
	<messageReceivers>
		<messageReceiver mep="http://www.w3.org/ns/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
		<messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"  class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
	</messageReceivers>
	<parameter name="ServiceClass" locked="false">com.june.web.service.axis2.CalculateService</parameter>
</service>

跟自动生产的service.xml的区别

<operation name="hello" >
        <messageReceiver  mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
    </operation>
    <operation name="add" >
        <messageReceiver  mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
    </operation>

否则会报错误:

The ServiceClass object does not implement the required method 
        in the following form: OMElement xxx (OMElement e)

调用WebService

关于如何调用WebService服务,网上的方法简直太多了

package june.web.service;

import javax.xml.namespace.QName;

import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;

public class Axis2Test {
	public static void main(String[] args) throws AxisFault {
		// 使用RPC方式调用WebService
		RPCServiceClient serviceClient = new RPCServiceClient();
		Options options = serviceClient.getOptions();
		// 指定调用WebService的URL
		EndpointReference targetEPR = new EndpointReference(
				"http://localhost:8090/june.web.service/services/CalculateService");
		options.setTo(targetEPR);

		// 指定要调用的计算机器中的方法及WSDL文件的命名空间:com.june.web.service。
		QName opAddEntry = new QName("http://axis2.service.web.june.com", "plus");// 加法
		QName opAddEntryminus = new QName("http://axis2.service.web.june.com", "minus");// 减法
		QName opAddEntrymultiply = new QName("http://axis2.service.web.june.com", "multiply");// 乘法
		QName opAddEntrydivide = new QName("http://axis2.service.web.june.com", "divide");// 除法
		// 指定plus方法的参数值为两个,分别是加数和被加数
		Object[] opAddEntryArgs = new Object[] { 1, 2 };
		// 指定plus方法返回值的数据类型的Class对象
		Class[] classes = new Class[] { float.class };
		// 调用plus方法并输出该方法的返回值
		System.out.println(serviceClient.invokeBlocking(opAddEntry, opAddEntryArgs, classes)[0]);
		System.out.println(serviceClient.invokeBlocking(opAddEntryminus, opAddEntryArgs, classes)[0]);
		System.out.println(serviceClient.invokeBlocking(opAddEntrymultiply, opAddEntryArgs, classes)[0]);
		System.out.println(serviceClient.invokeBlocking(opAddEntrydivide, opAddEntryArgs, classes)[0]);
	}
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.