Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试执行Spotfire API服务时获取HTTP代码403错误_Java_Api_Spotfire - Fatal编程技术网

Java 尝试执行Spotfire API服务时获取HTTP代码403错误

Java 尝试执行Spotfire API服务时获取HTTP代码403错误,java,api,spotfire,Java,Api,Spotfire,我正试图通过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.H

我正试图通过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)
编码员参考资料来源:

实际代码:-

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();
        }       

    }

}
公共类测试服务{
公共静态void main(字符串[]args){
试一试{
验证器myAuth=新验证器()
{
@凌驾
受保护的密码身份验证getPasswordAuthentication()
{
返回新密码身份验证(“,”.toCharArray());
}
};
Authenticator.setDefault(myAuth);
UpdateAnalysisServiceImplService测试=新的UpdateAnalysisServiceImplService(新URL(“http://server:/spotfire/ws/pub/UpdateAnalysisService?wsdl"));
UpdateAnalysis ua=新的UpdateAnalysis();
ua.setPath(“/TAM本地操作仪表板/DEV/API POC/ANALYSIS_RPD_DATA2”);
test.getUpdateAnalysisServiceImplPort().loadAnalysis(ua);
}捕获(格式错误的异常|更新分析服务异常e){
e、 printStackTrace();
}       
}
}
谁能帮我一下,让我知道为什么我会出错

谢谢,
Asish

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

可能的原因:

  • API未启用(在服务器配置中)
  • 为其指定凭据的用户帐户不是API用户组的成员
  • 已为公共API启用CSRF保护机制(您的客户端似乎无法处理此问题)
  • 如果您有权访问服务器日志,则这些日志将提供更多详细信息