【问题标题】:No endpoint java exception没有端点 java 异常
【发布时间】:2013-02-27 13:56:55
【问题描述】:

我得到了异常:没有端点。

这是代码:

InsuredDetailsLocator locator_MDP =new InsuredDetailsLocator();        
locator_MDP.setInsuredDetailsSoapEndpointAddress("http://mgnt184:8056/MDP_InsuredDetails_WS/InsuredDetails.asmx");
InsuredDetailsSoapStub service = new InsuredDetailsSoapStub();
UpdateInsuredDetails_Input request_MDP =new UpdateInsuredDetails_Input();
request_MDP.setSystemName(urlProps.getProperty(MDP_USERNAME));
request_MDP.setSystemPassword(urlProps.getProperty(MDP_PASSWORD));
request_MDP.setID(11111);
request_MDP.setFAMILY_NAME("hhhh");
request_MDP.setFIRST_NAME("dddd");![enter image description here][1]
request_MDP.setKOD_DIVUR_SHIVUKI_ELC(insuree.getKodDivurShivukiElc());
//I get here the exception :No endpoint          
//calling the method:
UpdateInsuredDetails_Output response_MDP= service.recieveMDMDataInsuredDetails(request_MDP);

当编译器转到方法时:recieveMDMDataInsuredDetails,在 InsuredDetailsS​​oapStub 类内部 - 我从那里得到错误,这是方法内部的代码:

public il.co.migdal.ws.tempuri.UpdateInsuredDetails_Output recieveMDMDataInsuredDetails(il.co.migdal.ws.tempuri.UpdateInsuredDetails_Input l_input) throws java.rmi.RemoteException {
    if (super.cachedEndpoint == null) {
        throw new org.apache.axis.NoEndPointException();
    }
.....

【问题讨论】:

  • 如果您将mgnt184:8056/MDP_InsuredDetails_WS/InsuredDetails.asmx 放入浏览器,它会给您什么?它实际上是正确的端点吗?
  • 您使用的是哪个库(我假设它是 Apache Axis)?您可能想用它来标记您的问题,因为这不是一般的 Java 问题。
  • 当我输入mgnt184:8056/MDP_InsuredDetails_WS/InsuredDetails.asmx- 时,我正在获取包含此服务上所有方法的页面,它不是 wsdl,它只是 dot 网页 Web 服务格式
  • 我解决了这个问题——我不得不像这样声明服务:InsuredDetailsS​​oapStub service= (InsuredDetailsS​​oapStub)MDP_locator.getInsuredDetailsS​​oap();

标签: java web-services apache exception axis


【解决方案1】:

您在locator_MDP 对象上设置端点,但在service 对象上进行调用,该对象与locator_MDP 无关(至少在发布的代码中)

【讨论】:

  • 感谢您的重播。是的,它们之间存在关系-我正在向服务对象发送 locator_MDP 对象:service.recieveMDMDataInsuredDetails(request_MDP);
  • orique 是正确的。您应该在服务定位器上调用适当的 get 方法,而不是使用 new InsuredDetailsSoapStub() 创建存根。
  • 感谢您的回答,但我不明白您的意思-您建议做什么?你的意思是我会删除这一行吗: InsuredDetailsS​​oapStub service = new InsuredDetailsS​​oapStub();我应该使用什么方法?在哪里?你能帮我理解怎么写吗?谢谢
  • 我解决了这个问题——我不得不像这样声明服务:InsuredDetailsS​​oapStub service= (InsuredDetailsS​​oapStub)MDP_locator.getInsuredDetailsS​​oap();
猜你喜欢
  • 1970-01-01
  • 2016-02-07
  • 2010-09-21
  • 1970-01-01
  • 2013-08-08
  • 1970-01-01
  • 1970-01-01
  • 2014-04-05
相关资源
最近更新 更多