【问题标题】:Getting HTTP code 403 error while trying to execute Spotfire API services尝试执行 Spotfire API 服务时出现 HTTP 代码 403 错误
【发布时间】:2018-08-20 20:30:12
【问题描述】:

我只是试图通过 java 程序调用 Tibco Spotfire UpdateAnalysisService Web 服务并在执行时出现以下错误:-

Exception in thread "main" com.sun.xml.internal.ws.client.ClientTransportException: The server sent HTTP status code 403: null
    at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.checkStatusCode(HttpTransportPipe.java:310)
    at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.createResponsePacket(HttpTransportPipe.java:259)
    at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:217)
    at com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:130)
    at com.sun.xml.internal.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:95)
    at com.sun.xml.internal.ws.api.pipe.Fiber.__doRun(Fiber.java:1121)
    at com.sun.xml.internal.ws.api.pipe.Fiber._doRun(Fiber.java:1035)
    at com.sun.xml.internal.ws.api.pipe.Fiber.doRun(Fiber.java:1004)
    at com.sun.xml.internal.ws.api.pipe.Fiber.runSync(Fiber.java:862)
    at com.sun.xml.internal.ws.client.Stub.process(Stub.java:448)
    at com.sun.xml.internal.ws.client.sei.SEIStub.doProcess(SEIStub.java:178)
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:93)
    at com.sun.xml.internal.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:77)
    at com.sun.xml.internal.ws.client.sei.SEIStub.invoke(SEIStub.java:147)
    at com.sun.proxy.$Proxy31.loadAnalysis(Unknown Source)
    at com.nielsen.spotfire.TestServices.main(TestServices.java:49)

编码器参考来自:- https://community.tibco.com/wiki/calling-tibco-spotfire-updateanalysisservice-web-service

实际代码:-

public class TestServices {

    public static void main(String[] args) {

try {

            Authenticator myAuth = new Authenticator() 
            {
                @Override
                protected PasswordAuthentication getPasswordAuthentication()
                {
                    return new PasswordAuthentication("<user>", "<password>".toCharArray());
                }
            };

            Authenticator.setDefault(myAuth);

            UpdateAnalysisServiceImplService test = new UpdateAnalysisServiceImplService(new URL("http://server:<port>/spotfire/ws/pub/UpdateAnalysisService?wsdl"));


            UpdateAnalysis ua = new UpdateAnalysis();
            ua.setPath("/TAM Local Ops Dashboard/DEV/API POC/ANALYSIS_RPD_DATA2");
            test.getUpdateAnalysisServiceImplPort().loadAnalysis(ua);

        } catch (MalformedURLException | UpdateAnalysisServiceException e) {
            e.printStackTrace();
        }       

    }

}

谁能帮忙告诉我为什么会出现这个错误。

谢谢, 阿西什

【问题讨论】:

    标签: java api spotfire


    【解决方案1】:

    这可能有多种原因。您使用的是什么版本的 Spotfire 服务器?

    可能的原因:

    1. API 未启用(在服务器配置中)。
    2. 您为其指定凭据的用户帐户不是 API 用户 组的成员。
    3. 已为公共 API 启用 CSRF 保护机制(您的客户端似乎无法处理此问题)。

    如果您有权访问服务器日志,这些日志应该会为您提供更多详细信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-26
      • 2014-07-18
      • 2017-11-22
      • 1970-01-01
      • 1970-01-01
      • 2014-02-19
      相关资源
      最近更新 更多