解决方案有两种亲测有效
1、
@Bean
public ServletRegistrationBean disServlet(){
return new ServletRegistrationBean(new CXFServlet() , "/webservice/*");
}
@Bean(name = Bus.DEFAULT_BUS_ID)
public SpringBus springBus() {
return new SpringBus();
}
// hello
@Bean
public Endpoint hello() {
EndpointImpl endpoint = new EndpointImpl(springBus(), new WorkNumImp());// 绑定要发布的服务实现类
endpoint.publish("/hi"); // 接口访问地址
return endpoint;
}
这是第一种写法。
2、
@Bean
public ServletRegistrationBean disServlet(){
return new ServletRegistrationBean(new CXFServlet() , "/webservice/*");
}
@Bean
public SpringBus cxf() {
return new SpringBus();
}
// hello
@Bean
public Endpoint hello() {
EndpointImpl endpoint = new EndpointImpl(cxf(), new WorkNumImp());// 绑定要发布的服务实现类
endpoint.publish("/hi"); // 接口访问地址
return endpoint;
}
这是第二种
如果你在启动application配置中,配置了cxf:
path: /webservice那你只能用第二种方式,不然会出cxf未定义
3、如果出现404页面访问不到。检查你的cxf:
path: /xxx
@Bean
public ServletRegistrationBean disServlet(){
return new ServletRegistrationBean(new CXFServlet() , "/xxx/*");
}两处xxx地方是不是一致,要保持一致才可以。
这是我自己在做webservice所遇到问题,解决的两种过程,第一次写,写的不好,请谅解,有问题请留言。