【发布时间】:2015-10-04 14:53:02
【问题描述】:
我有一些遗留的 JAX-WS @WebService 注释类。我正试图让它在 spring-boot 中工作。一直在看https://jax-ws-commons.java.net/spring/ 作为参考以及http://docs.spring.io/spring/docs/current/spring-framework-reference/html/remoting.html。
我的@SpringBootAnnotated 类
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
public class SpringBootBooter extends SpringBootServletInitializer {
@Bean
public ServletRegistrationBean servletRegistrationBean() {
ServletRegistrationBean reg = new ServletRegistrationBean(new WSSpringServlet(),"/myws");
reg.setLoadOnStartup(1);
return reg;
}
public static void main(String args[]) throws Exception {
SpringApplication.run(new Object[] {
SpringBootBooter.class,
new ClassPathResource("myLegacyAppContextWithWSBean.xml")
}, args);
}
@Override
public void onStartup(final ServletContext servletContext) throws ServletException {
super.onStartup(servletContext);
servletContext.addListener(new WSServletContextListener());
}
}
我的 WS 实现类的 XML 配置
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ws="http://jax-ws.dev.java.net/spring/core"
xmlns:wss="http://jax-ws.dev.java.net/spring/servlet"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://jax-ws.dev.java.net/spring/core
http://jax-ws.java.net/spring/core.xsd
http://jax-ws.dev.java.net/spring/servlet
http://jax-ws.java.net/spring/servlet.xsd">
<wss:binding url="/myws">
<wss:service>
<ws:service bean="#mywsbean" />
</wss:service>
</wss:binding>
<bean id="mywsbean" class="com.items.MyWsBean">
</bean>
</beans>
当一切启动后,我去 localhost:8080/myws 并返回“404 Not Found: Invalid Request”。
只是不确定我缺少什么,就像没有解析那些 wss:binding XML 声明以将这些 servlet 请求与 bean 绑定在一起,我不知道如何在 spring-boot 中执行此操作。
当我第一次点击映射的 URI 时,这会出现在日志中
Jul 15, 2015 9:40:18 AM com.sun.xml.ws.transport.http.servlet.WSServletDelegate <init>
INFO: WSSERVLET14: JAX-WS servlet initializing
谢谢
【问题讨论】:
-
问题解决了吗?
-
我放弃了我在上面尝试做的事情,只是按照下面的示例链接注册了一个 CXF servlet。我根本无法让任何 spring 记录的东西起作用(特别是上面的):github.com/spring-projects/spring-boot/pull/3104
-
总之,我上面描述的这个特殊问题仍然没有解决
-
从 Spring 4.x 开始,不再推荐 XML 配置 - 我建议使用 Spring 的 Java 配置。我已经在另一个答案中描述了如何设置 SpringBoot 和 Apache CXF:stackoverflow.com/questions/21223626/…
-
不确定到底是什么问题,但我只做了很少的修改就让它运行了(我必须更新 jax-ws.dev.java.net/spring/core 和 jax-ws 的位置.dev.java.net/spring/servlet)。也许有一个依赖冲突,与 JAX-WS 和 Spring 的东西,如果没有 pom.反正我写了tutorial on how to integrate Spring Boot and JAX-WS RI
标签: spring-boot jax-ws