IDempiere 发布WebService接口服务

1、常用注解说明

@WebService-定义服务,在类的上面

参数:

  •   targetNamespace:指定命名空间
  •   name:portType的名称
  •   portName:port的名称
  •   serviceName:服务名称
  •   endpointInterface:SEI接口地址,如果一个服务类实现了多个接口,只需要发布一个接口的方法,可通过此注解指定要发布服务的接口。

@WebMethod-定义在公开方法上边

参数:

  •   operationName:方法名
  •   exclude:设置为true表示此方法不是webservice方法,反之则表示webservice方法,默认是false

@WebResult-定义返回值,在方法返回值前边

参数:

       name:返回结果值的名称

@WebParam-定义参数,在方法参数前边

参数:

       name:指定参数的名称

@Path-定义在类名之上,也可以定义在方法名上。该注解接收一个value参数,表示定义资源的地址(等价于RequestMapping)。
@Consumes-指定http请求的MIME类型,默认是*/*,表示任意的MIME类型。该注解的值是数组类型,支持多个MIME类型,可以使用MediaType来指定MIME类型。
@Produces-指定http响应的MIME类型,默认是*/*,表示任意的MIME类型。该注解的值是数组类型,支持多个MIME类型,可以使用MediaType来指定MIME类型。
@SOAPBinding 有以下三种方式

  • 1)Document Wrapped:@SOAPBinding(style=SOAPBinding.Style.DOCUMENT,use=SOAPBinding.Use.LITERAL,parameterStyle=SOAPBinding.ParameterStyle.WRAPPED)
  • 2)Document Bare:@SOAPBinding(style=SOAPBinding.Style.DOCUMENT,use=SOAPBinding.Use.LITERAL,parameterStyle=SOAPBinding.ParameterStyle.BARE)
  • 3)RPC:@SOAPBinding(style=SOAPBinding.Style.RPC,use=SOAPBinding.Use.LITERAL,parameterStyle=SOAPBinding.ParameterStyle.WRAPPED)

详解https://blog.csdn.net/steveguoshao/article/details/8657869?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-1-8657869-blog-44947269.pc_relevant_aa&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-1-8657869-blog-44947269.pc_relevant_aa&utm_relevant_index=2

2、创建WebService服务接口

package org.gogetter.test;

import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.ParameterStyle;
import javax.jws.soap.SOAPBinding.Style;
import javax.jws.soap.SOAPBinding.Use;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

//@Path("/jctest_service/")
//@Consumes("application/xml") 
//@Produces("application/xml")
@WebService(targetNamespace="http://idempiere.org/ADInterface/1_0")
@SOAPBinding(style=Style.RPC,use=Use.LITERAL,parameterStyle=ParameterStyle.WRAPPED)
public interface JCTestService {
	
	/**
	 * 
	 * @param reqs
	 * @return CompositeResponsesDocument 
	 */
    //@POST
	//@Path("/user/select") 
	public @WebResult(name="result") String selectUser(@WebParam(name="Name") String name, @WebParam(name="pass") String pass);

}

3、实现WebService服务接口

 

package org.gogetter.test;

import javax.jws.WebService;

import org.idempiere.webservices.AbstractService;

@WebService(endpointInterface = "org.gogetter.test.JCTestService", serviceName = "jctest" ,targetNamespace="http://idempiere.org/ADInterface/1_0")
public class JCTest extends AbstractService implements JCTestService{

	@Override
	public String selectUser(String name,String pass) {
		// TODO Auto-generated method stub
		System.out.println("----------hellow----------");
        //返回内容可自己定义
		return "Name:"+name+";pass:"+pass;
	}

}

4、将服务实现类在service.xml中声明

 <jaxws:endpoint id="jctest" address="/jctest" implementor="org.gogetter.test.JCTest" >
   <jaxws:dataBinding>
       <bean class="org.apache.cxf.xmlbeans.XmlBeansDataBinding" >
       </bean>
    </jaxws:dataBinding>
  </jaxws:endpoint>

 注:id要和步骤3的 servicename 保持一致

5、重启服务并浏览地址,查看wsdl是否发布成功

 如过出现wsdl文件则证明服务发布成功

6、WebService接口发布

6.1、打开SoapUI 工具

6.2、新增一个SOAP项目并输入发布的wsdl路径

 6.3 点击OK,会发现左边新增了一个项目,然后点击请求(Request),点击运行按钮,查看右边的响应数据,如果未报错误则表示客户端掉用正常

 

注:本教程只是简单demo,供人入门使用,少走弯路。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值