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

未找到[SaajSoapMessage的终结点映射

濮阳霄
2023-03-14

我是使用Spring SOAP W的新手。我学习了许多教程,并试图适应这个示例的需要,但从未成功,我得到了这样的消息:找不到[SaajSoapMessage { http://ws . veritran . net/vtAuthServer/types } validatePOTCRequest]的endpoint映射

这是梅的代码:

  @Configuration
    @EnableWs
    public class ConfigWS {

            @Bean
            public ServletRegistrationBean<MessageDispatcherServlet> messageDispatcherServlet(ApplicationContext applicationContext){
                MessageDispatcherServlet servlet = new MessageDispatcherServlet();
                servlet.setApplicationContext(applicationContext);
                servlet.setTransformWsdlLocations(true);
                return new ServletRegistrationBean<MessageDispatcherServlet>(servlet,"/tkAuthServer/*");

            }

            @Bean(name="types")
            public DefaultWsdl11Definition defaultWsdl11Definition(XsdSchema schema) {
                DefaultWsdl11Definition defaultWsdl11Definition = new DefaultWsdl11Definition();
                defaultWsdl11Definition.setPortTypeName("ServiceWS");
                defaultWsdl11Definition.setLocationUri("/tkAuthServer");
                defaultWsdl11Definition.setTargetNamespace("http://ws.veritran.net/vtAuthServer/types");
                defaultWsdl11Definition.setSchema(schema);
                return defaultWsdl11Definition;
            }

            @Bean
            public XsdSchema schema() {

                return new SimpleXsdSchema(new ClassPathResource("IBKServiceW0102_v1.0.xsd"));
            }

    }

这是我的终点:

 @Endpoint
    public class EndpointWS {

        private static final String NAMESPACE="http://ws.veritran.net/vtAuthServer/types";

        @Autowired
        private ServiceWS service;

        @PayloadRoot(namespace = NAMESPACE, localPart="ValidatePOTCRequest")
        @ResponsePayload
        public ValidatePOTCResponse getResponse(@RequestPayload ValidatePOTCRequest request) {

            return service.response(request);
        }


    }

这是我的服务级别:

 @Service
    public class ServiceWS {


        public ValidatePOTCResponse response(ValidatePOTCRequest request) {
            ValidatePOTCResponse validatePOTCResponse = new ValidatePOTCResponse();

            validatePOTCResponse.setExternalUserId("BUSUSMDA");
            validatePOTCResponse.setProductCatalog("NONE");
            validatePOTCResponse.setProductIssuerCode("asd");
            validatePOTCResponse.setProductType("TDC");
            validatePOTCResponse.setCardNumber("14124");
            validatePOTCResponse.setCardNumberLastDigits("123");
            validatePOTCResponse.setCardExpirationDate("022017");
            validatePOTCResponse.setProductClientName("ABELARDO TEMP");
            validatePOTCResponse.setProductBrand("02");


            return validatePOTCResponse;

        }

    }

这是我的WSDL定义

<?xml version="1.0" encoding="UTF-8"?>
<!----><!--This is the primitives description of vtAuthServer,--><!--a software product of Veritran S.A. All rights reserved.--><!----><definitions targetNamespace="http://ws.veritran.net/vtAuthServer" xmlns:tns="http://ws.veritran.net/vtAuthServer" xmlns:type="http://ws.veritran.net/vtAuthServer/types" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/">
  <types>
    <schema targetNamespace="http://ws.veritran.net/vtAuthServer/types" xmlns="http://www.w3.org/2001/XMLSchema">
      <!--HEADER BEGIN-->
      <element name="vtAuthServerRequestHeader">
        <complexType>
          <all>
            <element minOccurs="1" maxOccurs="1" name="operation" type="xsd:string"/>
            <element minOccurs="0" maxOccurs="1" name="callerId" type="xsd:string"/>
            <element minOccurs="0" maxOccurs="1" name="callDetail" type="xsd:string"/>
            <element minOccurs="0" maxOccurs="1" name="dateTime" type="xsd:dateTime"/>
            <element minOccurs="1" maxOccurs="1" name="version" type="xsd:string"/>
            <element minOccurs="0" maxOccurs="1" name="callData" type="xsd:string"/>
          </all>
        </complexType>
      </element>
      <element name="vtAuthServerResponseHeader">
        <complexType>
          <all>
            <element minOccurs="1" maxOccurs="1" name="status" type="type:Status"/>
            <element minOccurs="0" maxOccurs="1" name="dateTime" type="xsd:dateTime"/>
            <element minOccurs="1" maxOccurs="1" name="responderId" type="xsd:string"/>
            <element minOccurs="1" maxOccurs="1" name="version" type="xsd:string"/>
            <element minOccurs="0" maxOccurs="1" name="callData" type="xsd:string"/>
          </all>
        </complexType>
      </element>
      <element name="vtGenericFault">
        <complexType>
          <all>
            <element minOccurs="1" maxOccurs="1" name="faultcode" type="string"/>
            <element minOccurs="1" maxOccurs="1" name="faultstring" type="string"/>
            <element minOccurs="1" maxOccurs="1" name="detail" type="type:vtGenericFaultDetail"/>
          </all>
        </complexType>
      </element>
      <complexType name="vtGenericFaultDetail">
        <all>
          <element minOccurs="0" maxOccurs="1" name="description" type="string"/>
          <element minOccurs="0" maxOccurs="1" name="stackTrace" type="string"/>
        </all>
      </complexType>
      <complexType name="Status">
        <all>
          <element minOccurs="1" maxOccurs="1" name="code" type="xsd:string"/>
          <element minOccurs="0" maxOccurs="1" name="desc" type="xsd:string"/>
          <element minOccurs="0" maxOccurs="1" name="techInfo" type="xsd:string"/>
        </all>
      </complexType>
      <!--VALIDATION-->
      <xsd:import namespace="http://ws.veritran.net/vtAuthServer/types" schemaLocation="IBKServiceW0102_v1.0.xsd"/>
      <!--POTC END-->
    </schema>
  </types>
  <message name="vtAuthServerRequestHeader">
    <part name="vtAuthServerRequestHeader" element="type:vtAuthServerRequestHeader"/>
  </message>
  <message name="vtAuthServerResponseHeader">
    <part name="vtAuthServerResponseHeader" element="type:vtAuthServerResponseHeader"/>
  </message>
  <message name="vtGenericFault">
    <part name="vtGenericFault" element="type:vtGenericFault"/>
  </message>
  <message name="validatePOTCRequest">
    <part name="validatePOTCRequest" element="type:validatePOTCRequest"/>
  </message>
  <message name="validatePOTCResponse">
    <part name="validatePOTCResponse" element="type:validatePOTCResponse"/>
  </message>
  <portType name="vtAuthServerSoap">
    <operation name="validatePOTC">
      <input message="tns:validatePOTCRequest" name="validatePOTCRequest"/>
      <output message="tns:validatePOTCResponse" name="validatePOTCResponse"/>
      <fault message="tns:vtGenericFault" name="validatePOTCFault"/>
    </operation>
  </portType>
  <binding name="vtAuthServerSoapBindingHttp" type="tns:vtAuthServerSoap">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="validatePOTC">
      <soap:operation soapAction="vtAuthServer#validatePOTC"/>
      <input name="validatePOTCRequest">
        <soap:header message="tns:vtAuthServerRequestHeader" part="vtAuthServerRequestHeader" use="literal"/>
        <soap:body use="literal"/>
      </input>
      <output name="validatePOTCResponse">
        <soap:header message="tns:vtAuthServerResponseHeader" part="vtAuthServerResponseHeader" use="literal"/>
        <soap:body use="literal"/>
      </output>
      <fault name="validatePOTCFault">
        <soap:fault name="validatePOTCFault" use="literal"/>
      </fault>
    </operation>
  </binding>
  <service name="vtAuthServer">
    <port binding="tns:vtAuthServerSoapBindingHttp" name="vtAuthServerSoapHttpService">
      <soap:address location="http://localhost:8080/tkAuthServer"/>
    </port>
  </service>
</definitions>

最后是我的XSD模式文件

<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://ws.veritran.net/vtAuthServer/types" xmlns:typ="http://ws.veritran.net/vtAuthServer/types"
 xmlns:tns ="http://ws.veritran.net/vtAuthServer/types"
 xmlns="http://www.w3.org/2001/XMLSchema"
 elementFormDefault="qualified"
 >

  <element name="validatePOTCRequest" type="typ:validatePOTCRequest"/>
  <element name="validatePOTCResponse" type="typ:validatePOTCResponse"/>
  <!--VALIDATION-->
  <complexType name="validatePOTCRequest">
    <all>
      <element minOccurs="1" maxOccurs="1" name="potcGroup" type="string"/>
      <element minOccurs="1" maxOccurs="1" name="potc" type="string"/>
      <element minOccurs="0" maxOccurs="1" name="potcSuite" type="string"/>
      <element minOccurs="0" maxOccurs="1" name="operationTrxDataSpecific" type="string"/>
    </all>
  </complexType>
  <complexType name="validatePOTCResponse">
    <all>
      <element minOccurs="0" maxOccurs="1" name="externalUserId" type="string"/>
      <element minOccurs="1" maxOccurs="1" name="productCatalog" type="string"/>
      <element minOccurs="1" maxOccurs="1" name="productIssuerCode" type="string"/>
      <element minOccurs="1" maxOccurs="1" name="productType" type="string"/>
      <element minOccurs="0" maxOccurs="1" name="accountNumber" type="string"/>
      <element minOccurs="0" maxOccurs="1" name="accountNumberLastDigits" type="string"/>
      <element minOccurs="0" maxOccurs="1" name="cardNumber" type="string"/>
      <element minOccurs="0" maxOccurs="1" name="cardNumberLastDigits" type="string"/>
      <element minOccurs="0" maxOccurs="1" name="cardExpirationDate" type="string"/>
      <element minOccurs="0" maxOccurs="1" name="productClientName" type="string"/>
      <element minOccurs="0" maxOccurs="1" name="productAlias" type="string"/>
      <element minOccurs="0" maxOccurs="1" name="productBrand" type="string"/>
      <element minOccurs="0" maxOccurs="1" name="productName" type="string"/>
      <element minOccurs="0" maxOccurs="1" name="productExplainText" type="string"/>
      <element minOccurs="0" maxOccurs="1" name="productIssuerName" type="string"/>
      <element minOccurs="0" maxOccurs="1" name="operationComment" type="string"/>
    </all>
  </complexType>
</schema>

这是我的请求:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://ws.veritran.net/vtAuthServer/types">
   <soapenv:Header>
      <typ:vtAuthServerRequestHeader>
         <!--You may enter the following 6 items in any order-->
         <operation>?</operation>
         <!--Optional:-->
         <callerId>?</callerId>
         <!--Optional:-->
         <callDetail>?</callDetail>
         <!--Optional:-->
         <dateTime>?</dateTime>
         <version>?</version>
         <!--Optional:-->
         <callData>?</callData>
      </typ:vtAuthServerRequestHeader>
   </soapenv:Header>
   <soapenv:Body>
      <typ:validatePOTCRequest>
         <!--You may enter the following 4 items in any order-->
         <typ:potcGroup>?</typ:potcGroup>
         <typ:potc>?</typ:potc>
         <!--Optional:-->
         <typ:potcSuite>?</typ:potcSuite>
         <!--Optional:-->
         <typ:operationTrxDataSpecific>?</typ:operationTrxDataSpecific>
      </typ:validatePOTCRequest>
   </soapenv:Body>
</soapenv:Envelope> 

和我的终点:http://localhost:8080/tkAuthServer

共有1个答案

麹凯捷
2023-03-14
This is Request and response


Received request [<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="urn:nppgw:debtorcreditoragent:payments:wsdl:v1/types" xmlns:urn="urn:iso:std:iso:20022:tech:xsd:head.001.001.01" `enter code here`xmlns:urn1="urn:iso:std:iso:20022:tech:xsd:pacs.002.001.06">
    <soapenv:Header/>
    <soapenv:Body>
        <typ:NotifyClearingRequest>
            <urn:AppHdr>
                <urn:Fr>
                    <urn:FIId>
                        <urn:FinInstnId>
                            <urn:BICFI>HBSLAU4TXXX</urn:BICFI>
                        </urn:FinInstnId>
                    </urn:FIId>
                </urn:Fr>
                <urn:To>
                    <urn:FIId>
                        <urn:FinInstnId>
                            <urn:BICFI>ASLLAU2CXXX</urn:BICFI>
                        </urn:FinInstnId>
                    </urn:FIId>
                </urn:To>
                <urn:BizMsgIdr>HBSLAU4TXXX20161110818900000000000</urn:BizMsgIdr>
                <urn:MsgDefIdr>pacs.002.001.06</urn:MsgDefIdr>
                <urn:BizSvc>npp.clear.01-sct.01</urn:BizSvc>
                <urn:CreDt>2016-11-16T10:00:00.000Z</urn:CreDt>
                <urn:Prty>NORM</urn:Prty>
            </urn:AppHdr>
            <urn1:Document>
                <urn1:FIToFIPmtStsRpt>
                    <urn1:GrpHdr>
                        <urn1:MsgId>HBSLAU4TXXX20161110818900000000000</urn1:MsgId>
                        <urn1:CreDtTm>2016-11-16T10:00:00.000Z</urn1:CreDtTm>
                        <urn1:InstgAgt>
                            <urn1:FinInstnId>
                                <urn1:BICFI>INSTGAGTXXX</urn1:BICFI>
                            </urn1:FinInstnId>
                        </urn1:InstgAgt>
                        <urn1:InstdAgt>
                            <urn1:FinInstnId>
                                <urn1:BICFI>INSTDAGTXXX</urn1:BICFI>
                            </urn1:FinInstnId>
                        </urn1:InstdAgt>
                    </urn1:GrpHdr>
                    <urn1:OrgnlGrpInfAndSts>
                        <urn1:OrgnlMsgId>CTBAAUSNXXX20161116ZPJSLESBFYCPNXV</urn1:OrgnlMsgId>
                        <urn1:OrgnlMsgNmId>pacs.008.001.05</urn1:OrgnlMsgNmId>
                    </urn1:OrgnlGrpInfAndSts>
                    <urn1:TxInfAndSts>
                        <urn1:OrgnlEndToEndId>NOTPROVIDED</urn1:OrgnlEndToEndId>
                        <urn1:OrgnlTxId>CTBAAUSNXXXN201604140200N1234567890</urn1:OrgnlTxId>
                        <urn1:TxSts>ACCP</urn1:TxSts>
                        <urn1:AccptncDtTm>2016-04-14T09:30:51.635Z</urn1:AccptncDtTm>
                        <urn1:OrgnlTxRef>
                            <urn1:IntrBkSttlmAmt Ccy="AUD">1555.55</urn1:IntrBkSttlmAmt>
                        </urn1:OrgnlTxRef>
                    </urn1:TxInfAndSts>
                </urn1:FIToFIPmtStsRpt>
            </urn1:Document>
        </typ:NotifyClearingRequest>
    </soapenv:Body>
</soapenv:Envelope>]
2021-05-01 16:16:46.902  WARN 24876 --- [0.0-8080-exec-1] o.s.ws.server.EndpointNotFound           : No endpoint mapping found for [SaajSoapMessage {urn:nppgw:debtorcreditoragent:payments:wsdl:v1/types}NotifyClearingRequest]


---------------------------------
public class SoapConfig extends WsConfigurerAdapter {

    //private static final String NAME_SPACE="urn:nppgw:debtorcreditoragent:payments:wsdl:v1";
    private static final String XSD_PATH="/xsds/";

    @Bean
    public ServletRegistrationBean<MessageDispatcherServlet> messageDispatcherServlet(ApplicationContext applicationContext){
        MessageDispatcherServlet messageDispatcherServlet = new MessageDispatcherServlet();
        messageDispatcherServlet.setApplicationContext(applicationContext);
        messageDispatcherServlet.setTransformWsdlLocations(true);
        return new ServletRegistrationBean<>(messageDispatcherServlet, "/inboundPaymentsAndReturns/soap/*");
    }

//    @Bean(name = "debtorCreditorAgentPayments")
//    public Wsdl11Definition wsdl11Definition(){
//        SimpleWsdl11Definition simpleWsdl11Definition = new SimpleWsdl11Definition();
//        simpleWsdl11Definition.setWsdl(new ClassPathResource("/META-INF/wsdl/DebtorCreditorAgentPaymentsService_v1.wsdl"));
//
//        return simpleWsdl11Definition;
//    }

    @Bean(name = "debtorCreditorAgentPayments")
    public DefaultWsdl11Definition defaultWsdl11Definition() {
        DefaultWsdl11Definition wsdl11Definition = new DefaultWsdl11Definition();
        wsdl11Definition.setServiceName("DebtorCreditorAgentPaymentsService");
//        Properties soapActions = new Properties();
//        soapActions.setProperty("notifySettlement", "urn:nppgw:debtorcreditoragent:payments:wsdl:v1/DebtorCreditorAgentPayments/notifySettlement");
//        wsdl11Definition.setSoapActions(soapActions);

        wsdl11Definition.setPortTypeName("DebtorCreditorAgentPaymentsPort");
        wsdl11Definition.setLocationUri("/inboundPaymentsAndReturns/soap/debtorCreditorAgentPayments");
        wsdl11Definition.setTargetNamespace("urn:nppgw:debtorcreditoragent:payments:wsdl:v1/types");
        //wsdl11Definition.setSchema(countriesSchema());
        wsdl11Definition.setSchemaCollection(getXsdCollection());

        return wsdl11Definition;
    }

    @Bean(name = "main")
    public XsdSchema main() {
        return new SimpleXsdSchema(new ClassPathResource(XSD_PATH+"main.xsd"));
    }

    @Bean(name = "head_001_001_01_20170424")
    public XsdSchema head_001_001_01_20170424() {
        return new SimpleXsdSchema(new ClassPathResource(XSD_PATH+"head_001_001_01_20170424.xsd"));
    }

    @Bean(name = "pacs_002_001_06")
    public XsdSchema pacs_002_001_06() {
        return new SimpleXsdSchema(new ClassPathResource(XSD_PATH+"pacs_002_001_06.xsd"));
    }

    @Bean(name = "CORE_pacs_004_001_05_20170424")
    public XsdSchema CORE_pacs_004_001_05_20170424() {
        return new SimpleXsdSchema(new ClassPathResource(XSD_PATH+"CORE_pacs_004_001_05_20170424.xsd"));
    }

    @Bean(name = "CORE_pacs_008_001_05_20170424")
    public XsdSchema CORE_pacs_008_001_05_20170424() {
        return new SimpleXsdSchema(new ClassPathResource(XSD_PATH+"CORE_pacs_008_001_05_20170424.xsd"));
    }

    @Bean(name = "CORE_pain_013_001_04_20170424")
    public XsdSchema CORE_pain_013_001_04_20170424() {
        return new SimpleXsdSchema(new ClassPathResource(XSD_PATH+"CORE_pain_013_001_04_20170424.xsd"));
    }

    @Bean(name = "CORE_pain_014_001_04_20170424")
    public XsdSchema CORE_pain_014_001_04_20170424() {
        return new SimpleXsdSchema(new ClassPathResource(XSD_PATH+"CORE_pain_014_001_04_20170424.xsd"));
    }
//

    @Bean
    public XsdSchemaCollection getXsdCollection() {

        return new XsdSchemaCollection() {

            @Override
            public XmlValidator createValidator() {
                // TODO Auto-generated method stub
                return null;
            }

            @Override
            public XsdSchema[] getXsdSchemas() {
                return new XsdSchema[]{
                    main()
                };
            }
        };

    }
------------------------------------------


@Endpoint
public class Enpoint {

    public Enpoint(){}

    private static final Logger logger = LoggerFactory.getLogger(Enpoint.class);

    private static final String TARGET_NAME_SPACE ="urn:nppgw:debtorcreditoragent:payments:wsdl:v1/types";

    @PayloadRoot(namespace = TARGET_NAME_SPACE,localPart = "ReturnInitiationRequest")
    @ResponsePayload
    public DebtorCreditorAgentPaymentsResponse returnInitiation(ReturnInitiationRequest returnInitiationRequest) throws AgencyPaymentException {
        return null;
    }

    @PayloadRoot(namespace = TARGET_NAME_SPACE,localPart = "NotifySettlementRequest")
    @ResponsePayload
    public DebtorCreditorAgentPaymentsResponse notifySettlement(NotifySettlementRequest notifySettlementRequest) throws AgencyPaymentException {
        logger.info("notifySettlement() start--------------->");
        return null;
    }

    @PayloadRoot(namespace = TARGET_NAME_SPACE,localPart = "ReturnPaymentRequest")
    @ResponsePayload
    public DebtorCreditorAgentPaymentsResponse returnPayment(ReturnPaymentRequest returnPaymentRequest) throws AgencyPaymentException {
        return null;
    }

    @PayloadRoot(namespace = TARGET_NAME_SPACE,localPart = "NotifyClearingRequest")
    @ResponsePayload
    public DebtorCreditorAgentPaymentsResponse notifyClearing(NotifyClearingRequest notifyClearingRequest) throws AgencyPaymentException {
        logger.info("notifyClearing() start--------------->");
        return null;
    }

    @PayloadRoot(namespace = TARGET_NAME_SPACE,localPart = "ProcessCreditTransferRequest")
    @ResponsePayload
    public DebtorCreditorAgentPaymentsResponse processCreditTransfer(ProcessCreditTransferRequest processCreditTransferRequest) throws AgencyPaymentException {
        return null;
    }

    @PayloadRoot(namespace = TARGET_NAME_SPACE,localPart = "RequestCreditorPaymentActivationRequest")
    @ResponsePayload
    public DebtorCreditorAgentPaymentsResponse requestCreditorPaymentActivation(RequestCreditorPaymentActivationRequest requestCreditorPaymentActivationRequest) throws AgencyPaymentException {
        throw new UnsupportedOperationException("RequestCreditorPaymentActivationRequest Operation not supported in Heritage NPP. Request: " + requestCreditorPaymentActivationRequest.toString());
    }

    @PayloadRoot(namespace = TARGET_NAME_SPACE,localPart = "ReportCreditorPaymentActivationRequest")
    @ResponsePayload
    public DebtorCreditorAgentPaymentsResponse reportCreditorPaymentActivation(ReportCreditorPaymentActivationRequest reportCreditorPaymentActivationRequest) throws AgencyPaymentException {
        throw new UnsupportedOperationException("ReportCreditorPaymentActivationRequest Operation not supported in Heritage NPP. Request: " + reportCreditorPaymentActivationRequest.toString());
    }

Please suggest what is issue here.
 类似资料:
  • 我是使用字符串进行SOAP web服务开发的新手。 我遵循以下流程使用Spring创建了一个Soap Web服务https://spring.io/guides/gs/producing-web-service/ 错误消息:2020-04-27 20:53:31.979WARN 4860---[nio-8080-exec-4]o.s.ws.server.Endpoint未找到:未找到[SaajSo

  • 我正在用Spring Boot迈出第一步,并创建一个SOAP web服务。 按照生成SOAP Web服务(https://spring.io/guides/gs/producing-web-service/)教程,我设法创建了一个简单的Web服务。 扩展该示例,现在我正在尝试创建具有多个操作的 Web 服务。这次我使用 wsdl 来生成所有 JAXB 类。一切都正确生成,我可以调用Web服务并因此

  • 我正在处理symfony2,并发现此错误: 未找到名为“Acme”的映射文件。博客包。实体帖子。类“Acme\BlogBundle\Entity\Posts”的php。500内部服务器错误-映射异常 我生成实体php应用程序/控制台原则:生成:实体 实体名称:AcmeBlogBundle:Post 格式:php 我将所有内容放在Acme:BlogBundle:Entity目录中。 这是我使用get

  • 我试图使用camel-ftpendpoint(特别是sftp模块)上传一个新生成的CSV文件。 我的路线的相关部分如下: 注意:位于的“文件” 传入/feed.csv 创建成功,骆驼的最后几行输出如下: 但是没有 /home/username/file.csv 在linuxserver上。 注: 当我将 sftp 路由配置为以下任一情况时,我得到相同的结果: 或 我错过了什么?

  • 我正在使用apache camel,希望有多条路由。路线如下。

  • 我无法使用xml文件将查询结果映射到带有MyBatis和Spring Boot的bean。 但MyBatis似乎找不到xml映射器,因此无法在正确的bean上映射结果。我收到的错误是: 16:02:56,074错误[org.springframework.boot.web.servlet.support.errorpagefilter](默认任务-1)由于异常[找不到结果映射Mypackage.M