首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正确设置JBoss / webservice端点(jboss-web.xml)

正确设置JBoss / webservice端点(jboss-web.xml)
EN

Stack Overflow用户
提问于 2021-05-15 02:20:09
回答 1查看 836关注 0票数 1

我使用Spring创建了一个小SOAP服务,其中包含了以下文件(只显示了相关文件):

WebServiceConfig.Java

代码语言:javascript
复制
@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

代码语言:javascript
复制
server.port=9090

Main.Java

代码语言:javascript
复制
@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端点,其内容如下:

代码语言:javascript
复制
<?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>

步骤我尝试过

我试着设置:

  • /
  • /ws/*

但我还是无法到达终点

如有任何意见,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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模式属性的结尾部分。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67542752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档