ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

java使用cxf写的webservices,PB进行调用

2022-05-09 10:32:55  阅读:158  来源: 互联网

标签:java PB webservices cxf org apache import sfb


package com.study.webservice;

import com.oracle.xmlns.internal.webservices.jaxws_databinding.XmlWebMethod;
import org.apache.cxf.Bus;
import org.apache.cxf.BusFactory;
import org.apache.cxf.frontend.ServerFactoryBean;
import org.apache.cxf.transport.servlet.CXFNonSpringServlet;
import org.apache.cxf.wsdl.service.factory.MethodNameSoapActionServiceConfiguration;

import javax.servlet.ServletConfig;

/**
* CXFNonSpringServlet这个类的名字还真是直接,这样就能直接使用servlet部署在tomcat上面了
* PB调用java 的webservices,终于找到原因了。不容易啊!!!!!!!!!!!!!!!!!
* http://localhost:8080/ws/hi?wsdl
*/
public class CxfService extends CXFNonSpringServlet {

protected void loadBus(ServletConfig sc) {
super.loadBus(sc);
Bus b=getBus();
BusFactory.setDefaultBus(b);
CXFtestWebservice hi = new CXFtestWebservice();//实现类
ServerFactoryBean sfb = new ServerFactoryBean(); //server工厂
//当时发现生成wsdl文件中的soapAction是空值,导致PB 调用不成功,下面这句话就是获取soapAction的,把这个加上,PB就能掉通了
sfb.getServiceFactory().getConfigurations().add(new MethodNameSoapActionServiceConfiguration());
sfb.setServiceClass(Cxftest.class);// 接口类
sfb.setAddress("/hi"); //服务请求路径
sfb.setServiceBean(hi);
sfb.create();
System.out.println(new XmlWebMethod().action().toString());
}

/**
* PB代码:
* 首先生成代理文件,然后编写下面代码进行调用
* String ls_url
* SoapConnection conn
* cxftestport ln_soap
* long ll_ret
* tns__sayHello lstr_sayhello
*
*
*
* lstr_sayhello.arg0 = '真的是不容易啊'
* ls_url = "http://localhost:8080/ws/hi?wsdl"
*
* conn = create SoapConnection
* conn.createinstance(ln_soap,"cxftestport",ls_url)
* ln_soap.sayhello(lstr_sayhello)
* messagebox('',string(ll_ret))
*/

}

标签:java,PB,webservices,cxf,org,apache,import,sfb
来源: https://www.cnblogs.com/jsname/p/16248197.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有