Java Web服务消费者>没有名为' null'的客户端传输发现

时间:2014-06-03 12:49:31

标签: java web-services lotus-domino webservice-client

我们正在尝试用Java开发Lotus Notes中的Web Service Consumer。 我们根据wsdl文件使用了Lotus Designer自动生成的源代码。

从本地计算机的使用者中生成的存根调用方法工作正常。但是在设置代理程序以在Domino服务器上运行之后,此异常会在日志文件中尖叫:

02.06.2014 17:32:25   AMgr: Agent ('AttachmentDownloadServer' in 'test/AttachmentsDownload2.nsf') error message: No client transport named 'null' found!
02.06.2014 17:32:25   AMgr: Agent ('AttachmentDownloadServer' in 'test/AttachmentsDownload2.nsf') error message: at lotus.domino.axis.client.AxisClient.invoke(Unknown Source)
02.06.2014 17:32:25   AMgr: Agent ('AttachmentDownloadServer' in 'test/AttachmentsDownload2.nsf') error message: at lotus.domino.axis.client.Call.invokeEngine(Unknown Source)
02.06.2014 17:32:25   AMgr: Agent ('AttachmentDownloadServer' in 'test/AttachmentsDownload2.nsf') error message: at lotus.domino.axis.client.Call.invoke(Unknown Source)
02.06.2014 17:32:25   AMgr: Agent ('AttachmentDownloadServer' in 'test/AttachmentsDownload2.nsf') error message: at lotus.domino.axis.client.Call.invoke(Unknown Source)
02.06.2014 17:32:25   AMgr: Agent ('AttachmentDownloadServer' in 'test/AttachmentsDownload2.nsf') error message: at lotus.domino.axis.client.Call.invoke(Unknown Source)
02.06.2014 17:32:25   AMgr: Agent ('AttachmentDownloadServer' in 'test/AttachmentsDownload2.nsf') error message: at lotus.domino.axis.client.Call.invoke(Unknown Source)
02.06.2014 17:32:25   AMgr: Agent ('AttachmentDownloadServer' in 'test/AttachmentsDownload2.nsf') error message: at lotus.domino.websvc.client.Call.invoke(Unknown Source)

我们已经尝试将库websvc.jar附加到java库(我们无法将其附加到webservice使用者,因为错误:“无法保存脚本库。对生成的更改源代码会阻止其正常运行“)。但它没有帮助我们。

我们是为9.0.1FP1 Designer中的8.5.3FP6 Domino服务器开发的。我们也尝试在9.0.1 Domino服务器上运行它,但是有相同的错误。

有人已经看过这个错误吗?任何解决方案?

更多详情:

我正在使用Designer中生成的源代码,其中使用了lotus.domino.websvc.client.*类。

我认为Domino Server可以访问这些类。在

中调用invoke方法时会产生错误
lotus.domino.websvc.client.Call _call = createCall("xxx"); 
java.lang.Object _resp = _call.invoke(new java.lang.Object[] {pInputXml}); 

因此请求不会发送给Web服务提供商。

3 个答案:

答案 0 :(得分:2)

我认为代理的运行时安全级别存在问题。将其设置为“允许受限操作”。错误列表有点令人困惑。

答案 1 :(得分:0)

那么看看你如何调用它似乎是在编写自己的XML?这个XML是SOAP消息吗?你可以寄样品吗?

您是否有理由不使用默认方法。

例如,在导入WSDL之后我改为使用它:

import lotus.domino.*;
import cz.env.dms.T_WS.T_WS_wsdl.*;

public class JavaAgent extends AgentBase {

    public void NotesMain() {

      try {

          // Refer to cz.env.dms.T_WS.T_WS_wsdl.MZP_WS_TESTPortType.java for service interface methods:
         MZP_WS_TESTPortType stub = new MZP_WS_TESTLocator().getMZP_WS_TESTPort();

         // Setting endpoint to test mockservice in SoapUI.
         //stub.setEndpoint("http://localhost:8088/mockservice");
         stub.setEndpoint("http://dms.env.cz/T-WS/T-WS");

         String answer = stub.getMyVersion();

         System.out.println(answer);

      } catch(Exception e) {
          e.printStackTrace();
       }
   }
}

答案 2 :(得分:0)

我为通话添加了目标终点,它对我有用:

call.setTargetEndpointAddress(TARGET_ENDPOINT);