Lexis Nexis 在 v12 上出现无效凭据错误

问题描述 投票:0回答:0

我使用 Lexis-Nexis SOAP 服务。 目前它适用于 Java 8 和 Lexis-Nexis v11.

但是后来我把Java升级到17版本,生成了12版本下的Lexis-Nexis SOAP服务客户端。 在 Java 17 上,它不使用 javax 命名空间,而是使用 jakarta。雅加达的名字确实出现在新鲜的 生成的 SOAP 客户端。

为了从 WSDL 文档生成客户端应用程序,我使用了 Apache CXF 工具。

当我打电话给服务客户时,我遇到了这个异常:

https.bridgerinsight_lexisnexis_com.bridgerinsight_web_services_interfaces_12_0.ISearchSearchServiceFaultFaultFaultMessage: The following error occurred while processing your request. Please contact your system administrator.

Invalid Credentials
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
        at com.sun.xml.ws.fault.SOAPFaultBuilder.createException(SOAPFaultBuilder.java:119)
        at com.sun.xml.ws.client.sei.StubHandler.readResponse(StubHandler.java:225)
        at com.sun.xml.ws.db.DatabindingImpl.deserializeResponse(DatabindingImpl.java:176)
        at com.sun.xml.ws.db.DatabindingImpl.deserializeResponse(DatabindingImpl.java:263)
        at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:89)
        at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:62)
        at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:132)
        at jdk.proxy2/jdk.proxy2.$Proxy133.search(Unknown Source)
        at co.tulip.object.services.LNService.searchCompany(LNService.java:298)
        at co.tulip.object.controller.TESTController.testMethod(TESTController.java:292)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:207)
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:152)
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:884)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797)
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1081)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:974)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1011)
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)
        at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:500)
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
        at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:587)
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:764)
        at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1665)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:110)
        at co.tulip.object.dev.MaintenanceModeFilter.doFilterInternal(MaintenanceModeFilter.java:91)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
        at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
        at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
        at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:365)
        at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
        at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)
        at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
        at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)
        at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
        at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)
        at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:374)
        at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(

在版本 11 和 Java 8 下的实时实现使用与在 v12 下新生成的配置相同的配置,包括凭据。 但是新生成的客户端应用程序返回上面的错误消息。

------------ 2023 年 3 月 23 日编辑----------------

我曾经遇到过这个错误:

但是我设法通过包含这个依赖项来解决它:

implementation ('org.glassfish.metro:wssx-impl:4.0.2')

我用来运行/访问 SOAP 服务生成的客户端的依赖项是:

  implementation('jakarta.xml.ws:jakarta.xml.ws-api:4.0.0')

    implementation('jakarta.xml.bind:jakarta.xml.bind-api:4.0.0')
    implementation('com.sun.xml.bind:jaxb-impl:4.0.0')

    implementation ('org.apache.commons:commons-lang3:3.12.0')
    implementation ('org.apache.cxf:cxf-core:4.0.0')
    
    implementation ('org.apache.cxf.xjc-utils:cxf-xjc-runtime:4.0.0')
    implementation ('org.glassfish.metro:wssx-impl:4.0.2')
    implementation "jakarta.annotation:jakarta.annotation-api:2.1.1"
   
    implementation 'org.apache.cxf:cxf-rt-frontend-jaxws:4.0.0'
    compileOnly 'jakarta.servlet:jakarta.servlet-api:5.0.0'//because Apache Tomcat 10, and Jetty 11, support up to v5.0 of servlet standard

我用来生成SOAP服务客户端的依赖是:

    cxfCodegen platform("org.apache.cxf:cxf-bom:4.0.0") 
    cxfCodegen "jakarta.annotation:jakarta.annotation-api:2.1.1"

    cxfCodegen "jakarta.xml.ws:jakarta.xml.ws-api:4.0.0" 
   
    cxfCodegen('jakarta.xml.bind:jakarta.xml.bind-api:4.0.0')
    cxfCodegen('com.sun.xml.bind:jaxb-impl:4.0.0')

    //------------- XJC ------------------
    cxfCodegen 'org.apache.cxf.xjc-utils:cxf-xjc-runtime:4.0.0'
    cxfCodegen 'org.apache.cxf.xjcplugins:cxf-xjc-ts:4.0.0'

    cxfCodegen 'jakarta.servlet:jakarta.servlet-api:5.0.0'//because Apache Tomcat 10, and Jetty 11, support up to v5.0 of servlet standard
    
    //---------- Extra Libs ---------------
    cxfCodegen 'org.apache.cxf:cxf-codegen-plugin:4.0.0'
  
    cxfCodegen 'org.apache.cxf:cxf-tools-common:4.0.0'
    cxfCodegen 'org.apache.cxf:cxf-core:4.0.0'
    
    cxfCodegen 'org.apache.cxf:cxf-tools-wsdlto-core:4.0.0'
    cxfCodegen 'org.apache.cxf:cxf-tools-wsdlto-frontend-jaxws:4.0.0'
   
    cxfCodegen 'org.apache.commons:commons-lang3:3.12.0'
    cxfCodegen 'org.apache.cxf:cxf-rt-wsdl:4.0.0'
    cxfCodegen 'org.apache.cxf:cxf-tools-wsdlto-databinding-jaxb:4.0.0'
    cxfCodegen 'org.apache.ws.xmlschema:xmlschema-core:2.3.0'
    cxfCodegen 'wsdl4j:wsdl4j:1.6.3'
    cxfCodegen 'org.apache.cxf:cxf-rt-bindings-soap:4.0.0'
    cxfCodegen 'org.apache.cxf:cxf-tools-validator:4.0.0'
    cxfCodegen 'org.apache.cxf:cxf-rt-frontend-jaxws:4.0.0'
    
    cxfCodegen ('org.glassfish.metro:wssx-impl:4.0.2')
    cxfCodegen 'org.apache.cxf:cxf-rt-security:4.0.0'
    cxfCodegen 'org.apache.cxf:cxf:4.0.0'

我用来生成SOAP服务客户端的工具(Apache CXF):

import io.mateo.cxf.codegen.wsdl2java.Wsdl2Java 

plugins {
    id "io.mateo.cxf-codegen" version "1.0.3"
}

tasks.register("lexis-nexis-gen-12", Wsdl2Java) {
    toolOptions {
        wsdl.set(layout.projectDirectory.file("src/main/resources/XGServices.wsdl"))//the location of the WSDL document on the file-system
       
        extraArgs.addAll(["-databinding", "jaxb"]) 
        serviceName.set("XGServices")//the name of the service node under the WSDL document
        outputDir.set(file("${buildDir}/../src/main/java"))//that's is the location where the generated files go to
        //xjcArgs.add("-Xts")
        verbose.set(true)
        markGenerated.set(true)
    }
}

xjcArgs.add("-Xts")
//我需要这个参数吗?包括或排除它都没有区别

类似的现有问题在这里:

在这种情况下可能是什么问题?

致以诚挚的问候

cxf soap-client wsdl2java java-17 cxf-codegen-plugin
© www.soinside.com 2019 - 2024. All rights reserved.