当前位置: 首页 > 知识库问答 >
问题:

出现错误“找不到 SaajSoap 消息的终结点映射”

梁丘兴腾
2023-03-14

我正在用Spring Boot迈出第一步,并创建一个SOAP web服务。

按照生成SOAP Web服务(https://spring.io/guides/gs/producing-web-service/)教程,我设法创建了一个简单的Web服务。

扩展该示例,现在我正在尝试创建具有多个操作的 Web 服务。这次我使用 wsdl 来生成所有 JAXB 类。一切都正确生成,我可以调用Web服务并因此获得wsdl。

然后,我使用SOAP UI根据返回的wsdl为我的方法生成示例请求,但是当我试图执行它们时,我得到了错误(实际上是警告):

警告10280---[nio-8080-exec-1]o.s.ws.server。EndpointNotFound:未找到[SaajSoapMessage Ping]的endpoint映射

过去两天我一直被困在这里。考虑到问题可能是我的endpoint方法的参数不匹配,我尝试创建一个接收单个字符串的operationg (Ping ),但即使这样也失败了。

我正在使用一个配置器类,我能找到的所有示例都使用配置文件(web.xml和servlet文件),我无法将这些部分放在一起来解决这个问题。

这是我的配置类(我已经删除了导入以节省空间):

package ws;

@EnableWs
@Configuration
public class WebServiceConfig extends WsConfigurerAdapter {
@Bean
public ServletRegistrationBean messageDispatcherServlet(ApplicationContext applicationContext) {
    MessageDispatcherServlet servlet = new MessageDispatcherServlet();
    servlet.setApplicationContext(applicationContext);
    servlet.setTransformWsdlLocations(true);
    return new ServletRegistrationBean(servlet, "/SVN/*");
}


@Bean (name = "SVNClient")
  public Wsdl11Definition defaultWsdl11Definition() {
    SimpleWsdl11Definition wsdl11Definition = new SimpleWsdl11Definition();
    wsdl11Definition.setWsdl(new ClassPathResource("/wsdl/SVNClient.wsdl"));

    return wsdl11Definition;
  }
}

这是我拥有endpoint的类(为了节省空间,我已经删除了导入):

package ws;

@Endpoint
public class WebServiceEndPoint {
private static final String NAMESPACE_URI = "http://gestion.svn.client";

@Autowired
public WebServiceEndPoint() {
    System.out.println("Entramos en WebServiceEndPoint");
}

@PayloadRoot(namespace = NAMESPACE_URI, localPart = "Ping")
public @ResponsePayload PingResponse ping() {
    PingResponse resposta = new PingResponse();
    resposta.setOut("I'm in");
    return resposta;
}

@PayloadRoot(namespace = NAMESPACE_URI, localPart = "getLog")
public @ResponsePayload GetLogResponse getLog(@RequestPayload InputParameters wsPayload) {
    GetLogResponse response = new GetLogResponse();

    response.setCODERROR("0");
    response.setMENSAJEERROR("I'm in");

    return response;
}

我的怀疑是:

@Endpoint@PayloadRoot注释是否足以将endpoint映射到web服务操作?我的意思是:

  • 方法或参数声明中是否存在使它们与web服务定义不匹配的内容
  • 还是我仍然需要一些配置文件(web.xml、servlet或其他东西)来执行此映射

共有1个答案

尉迟子民
2023-03-14

在重新构建wsdl之后,它开始工作。我想有些事情不对劲,它不符合我的endpoint定义。

 类似资料:
  • 我是使用Spring SOAP W的新手。我学习了许多教程,并试图适应这个示例的需要,但从未成功,我得到了这样的消息:找不到[SaajSoapMessage { http://ws . veritran . net/vtAuthServer/types } validatePOTCRequest]的endpoint映射 这是梅的代码: 这是我的终点: 这是我的服务级别: 这是我的WSDL定义 最后

  • 以下是从终端返回的确切消息: 错误:安装sass时出错:错误无法生成gem本机扩展。当前目录:/Library/Ruby/Gems/2.0。0/gems/ffi-1.9。18/ext/ffi_c/System/Library/Frameworks/Ruby。framework/Versions/2.0/usr/bin/ruby-r/siteconf20170721-3751-3vsh43。rb e

  • 问题内容: 我开始使用TypeScript编写AngularJS应用。我有这个简单的模块命令: 当我跑步时,我得到了: 我是否需要包括一些内容以使他们理解? 问候, 问题答案: 您可以通过告诉编译器“您对角度的全部了解”来简单地告诉编译器不再担心: 为了获得所有好的工具和类型检查,您需要提取Angular类型定义,以便编译器知道可用的东西。 如果您对自己喜欢的IDE使用Visual Studio或

  • 我在文件夹system32中有文件夹run。当我从Total Commander中运行cmd时,打开一个命令提示符窗口,当前目录为C:\Users\admin,并希望进入该文件夹,将输出以下错误消息: 系统找不到指定的路径。 当我直接在文件夹中打开cmd时,它工作得非常好。为什么? 在C:\Windows\System32\run中打开命令提示符窗口: 简单运行cmd时的命令提示窗口:

  • 当我的应用程序SP和客户端IdP之间出现SSO时,我收到了“由:org.opensaml.xml.security.SecurityException:SAML消息预期目标endpoint与收件人endpoint不匹配”的“异常”。 服务器日志显示了架构的差异,请参见下文: 我的应用程序在2个实例上的STG上运行,LB在前,因此我使用< code > SAMLContextProviderLB 上