簡體   English   中英

WSDL 網絡服務 BasicAuthenticationResolver

[英]WSDL webservice BasicAuthenticationResolver

我正在使用 soa-model-core 從 wsdl wenservice url 獲取定義。 沒有身份驗證 WSDLParser 工作正常。 但如果 url 包含 Basic Auth,則會引發 401 錯誤。

我嘗試使用 BasicAuthenticationResolver 也無法正常工作以下錯誤我收到錯誤。 我需要來自 webservice 的定義是他們的任何替代方式。 通過使用 Httpclient 我得到了字符串的響應。 從 String 以任何方式轉換為 Defination for Binding。

import java.io.IOException;
import com.predic8.wsdl.Definitions;
import com.predic8.wsdl.WSDLParser;
import com.predic8.xml.util.BasicAuthenticationResolver;

public class Test {

    public static void main(String[] args) throws ClientProtocolException, IOException {
        String str="http://localhost:7005/OrderManagement/wsapi?WSDL";
        WSDLParser ws=new WSDLParser();
        BasicAuthenticationResolver bs=new BasicAuthenticationResolver();
        bs.setBaseDir("http");
        bs.setUsername("osm");
        bs.setPassword("osmadmin1");
        ws.setResourceResolver(bs);
        Definitions df=ws.parse(str);
        System.out.println(df.toString());

    }
}

錯誤:

Exception in thread "main" groovy.lang.MissingMethodException: No signature of method: com.predic8.xml.util.BasicAuthenticationResolver.resolve() 
is applicable for argument types: (java.lang.String, java.lang.String) values: [http://192.168.1.105:7005/OrderManagement/wsapi?WSDL, ]
Possible solutions: resolve(java.lang.Object)
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:58)
    at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:54)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
    at com.predic8.soamodel.AbstractParser.getResourceToken(AbstractParser.groovy:47)
    at com.predic8.soamodel.AbstractParser.this$2$getResourceToken(AbstractParser.groovy)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:210)
    at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:59)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:166)
    at com.predic8.soamodel.AbstractParser.parse(AbstractParser.groovy:35)
    at com.predic8.wsdl.WSDLParser.super$2$parse(WSDLParser.groovy)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1215)
    at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:132)
    at com.predic8.wsdl.WSDLParser.parse(WSDLParser.groovy:24)
    at test.Test.main(Test.java:21)

predict8 不支持基本身份驗證

我的解決方案是:獲取受保護的 WSDL 服務並將其保存到 *.wsdl 文件中。 我使用 HttpURLConnection 和基本身份驗證https://www.baeldung.com/java-http-url-connection現在我有一個 WSDL 文件,可以輕松地將它與 predict8 庫一起使用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM