我使用Spring创建了一个小SOAP服务,其中包含了以下文件(只显示了相关文件):
WebServiceConfig.Java
@EnableWs
@Configuration
public class WebServiceConfig {
@Bean
public ServletRegistrationBean<MessageDispatcherServlet> messageDispatcherServlet(ApplicationContext context) {
MessageDispatcherServlet messageDispatcherServlet = new MessageDispatcherServlet();
messageDispatcherServlet.setApplicationContext(context);
messageDispatcherServlet.setTransformWsdlLocations(true);
return new ServletRegistrationBean<MessageDispatcherServlet>(messageDispatcherServlet, "/ws/*");
}
@Bean(name = "consultas")
public DefaultWsdl11Definition defaultWsdl11Definition(XsdSchema consultasSchema) {
DefaultWsdl11Definition definition = new DefaultWsdl11Definition();
definition.setPortTypeName("ConsultasPort");
definition.setTargetNamespace("http:/site.com/consultas");
definition.setLocationUri("/ws");
definition.setSchema(consultasSchema);
return definition;
}
@Bean
public XsdSchema consultasSchema() {
return new SimpleXsdSchema(new ClassPathResource("consultas.xsd"));
}
}application.properties
server.port=9090Main.Java
@SpringBootApplication
public class Main extends SpringBootServletInitializer {
public static void main(String[] args) {
System.setProperty("org.jboss.logging.provider", "slf4j2");
SpringApplication.run(Main.class, args);
}
}问题描述:
当我从Eclipse运行Main.Java时,将部署一个Tomcat实例。访问地址http://localhost:9090/ws/consultas.wsdl。显示WSDL描述文件,而SOAPUI能够在没有问题的情况下使用web服务。
当我打包.war并将其部署到通配符上时,问题就开始了--23.0.2.Final。上下文根总是设置为/soap-web-service-0.0.1-快照。
编辑2021 05 17
通过在文件夹src\main\webapp\web.xml中创建jboss-web.xml文件,我能够更改WildFly端点,其内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web xmlns="http://www.jboss.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.jboss.com/xml/ns/javaee
http://www.jboss.org/j2ee/schema/jboss-web_5_1.xsd">
<context-root>/ws/*</context-root>
</jboss-web>步骤我尝试过
我试着设置:
但我还是无法到达终点
如有任何意见,将不胜感激。
发布于 2021-08-02 16:23:36
更新几个月后,我偶然发现了the answer,由user @pascal-thivent回答。
...you在以下位置访问WSDL:
http://localhost:8080//services/hello?wsdl A、B、C
A是servlet容器的主机和端口。B是war文件的名称。C来自web.xml文件中的url模式元素。D来自sun-jaxws.xml文件中url模式属性的结尾部分。
https://stackoverflow.com/questions/67542752
复制相似问题