webservice 暴漏接口_解决java web 项目发布webservice接口
最近公司有一个需求,需要暴露当前web项目的接口给第三方系统调用,网上查到webservice是跨平台、跨语言的应用技术,所以作为首选。查找了很多例子,都是很简单的加@WebService到类,加@WebMethod到暴露的方法上,然后EndPoint.publish即可,但我在web项目中使用,没有报错,但就是发布失败,在这里卡了很久,以下是我的解决过程,做下记录备忘:首先试着新建了一个普通ja
最近公司有一个需求,需要暴露当前web项目的接口给第三方系统调用,网上查到webservice是跨平台、跨语言的应用技术,所以作为首选。
查找了很多例子,都是很简单的加@WebService到类,加@WebMethod到暴露的方法上,然后EndPoint.publish即可,但我在web项目中使用,没有报错,但就是发布失败,在这里卡了很久,
以下是我的解决过程,做下记录备忘:
首先试着新建了一个普通java项目,同样的加接口、实现类、注解,结果发布成功。但是新建一个web项目同样的操作就是发布不成功,看了下项目结构,主要就是web项目默认加载tomcat的lib
所有JAR包,把这些包删除,重新发布,结果成功。这时我考虑到可能是我tomcat下的jar包冲突问题,于是进行排查,最后发现去掉 xfire-all-1.2.6.jar ,web项目就可以发布成功了,但是web项目
又必须有 xfire-all-1.2.6.jar,网上查了没有找到具体方法,但有提到xfire-core-1.2.6.jar,于是我把 xfire-all-1.2.6.jar 替代成 xfire-core-1.2.6.jar,web项目功能正常,webservice也可以发布成功。
因为我的项目是ssh框架,所以就创建一个filter类,配置到web.xml,启动项目的同时发布接口。
public class StartFilter implementsFilter{
@Overridepublic voiddestroy() {//TODO Auto-generated method stub
}
@Overridepublic voiddoFilter(ServletRequest request, ServletResponse response, FilterChain chain)throwsIOException, ServletException {//TODO Auto-generated method stub
}
@Overridepublic void init(FilterConfig filterConfig) throwsServletException {this.startWebservice();
}public voidstartWebservice() {
Endpoint.publish("http://localhost:8085/service/wstest",newWsInterfaceImpl());
System.out.println("webservice发布成功");
}
}
//web.xml添加配置
StartFilter
com.cf.cfipms.interceptor.StartFilter
目前只是实现使用jdk自带的webservice进行发布,看到很多推荐CXF,正在学习,等成功了在更新。
更多推荐
所有评论(0)