解决java web 项目发布webservice接口
2020-12-18 04:34
标签:没有 使用 就是 替代 end 成功 throw point http 最近公司有一个需求,需要暴露当前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,启动项目的同时发布接口。 目前只是实现使用jdk自带的webservice进行发布,看到很多推荐CXF,正在学习,等成功了在更新。 解决java web 项目发布webservice接口 标签:没有 使用 就是 替代 end 成功 throw point http 原文地址:https://www.cnblogs.com/Mrshuang11/p/14093120.htmlpublic class StartFilter implements Filter{
@Override
public void destroy() {
// TODO Auto-generated method stub
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
// TODO Auto-generated method stub
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
this.startWebservice();
}
public void startWebservice() {
Endpoint.publish("http://localhost:8085/service/wstest",new WsInterfaceImpl());
System.out.println("webservice发布成功");
}
}
//web.xml添加配置
文章标题:解决java web 项目发布webservice接口
文章链接:http://soscw.com/index.php/essay/37006.html