我们正在尝试用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服务提供商。
答案 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);