标签: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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。