我正在尝试将java类( bean)的一个对象传递给另一个具有LS2J的类。
问题是返回了一个错误:
LS2J错误:引发java.lang.ClassNotFoundException: com.pasquier.DTO.WS.LogWSDTO
我不知道为什么?
我有一个类bean,通常带有getter和setter。我想在另一个类中传递这个类的一个实例。
我在莲花LS2J的课程:
Class LogWebService
sessionJava As JAVASESSION
classJava As JAVACLASS
objectJava As JAVAOBJECT
methodJava As JAVAMETHOD
Public Sub New()
Set sessionJava = New JAVASESSION
Set classJava = sessionJava.GetClass("com.pasquier.launcher/LogWebService")
Set objectJava = classJava.CreateObject
End Sub
Public Sub setLog(logDTO As LogWSDTO)
Set methodJava = classJava.GetMethod("setLog","(Lcom/pasquier/DTO/WS/LogWSDTO;)V")
objectJava.setLog(logDTO)
End Sub
End Class崩溃的是setLog方法
我在密码里叫它:
Class LogGetAllDocumentsDAO
Private ilog As LogWebService
Private logDTO As LogWSDTO
Private docDTO As LogGetAllDocumentsDTO
Public Sub New(logWSparam As LogWSDTO, docDTOparam As LogGetAllDocumentsDTO)
Set Me.logDTO = logWSparam
Set Me.docDTO = docDTOparam
End Sub
Public Sub appelLog()
Set ilog = New LogWebService()
' error: LS2J Error: Threw java.lang.ClassNotFoundException: com.pasquier.DTO.WS.LogWSDTO
Call ilog.setLog(logDTO)
End Sub 一个主意?
我在同一个库中有一个类LogDTO,而不是LogWebService。
Class LogWSDTO
sessionJava As JAVASESSION
classJava As JAVACLASS
objectJava As JAVAOBJECT
methodJava As JAVAMETHOD
Public Sub New()
Set sessionJava = New JAVASESSION
Set classJava = sessionJava.GetClass("com.pasquier.DTO.WS/LogWSDTO")
Set objectJava = classJava.CreateObject
End Sub如果我理解,我不能通过logDTO:
Set Me.logDTO = logWSparam是因为这个吗?那我该怎么办??
我试过了但不起作用。
我在LS2J中添加了一个LS2J方法(不是只在LS2J上使用java )
Class LogWSDTO
sessionJava As JAVASESSION
classJava As JAVACLASS
objectJava As JAVAOBJECT
methodJava As JAVAMETHOD
Public Sub New()
Set sessionJava = New JAVASESSION
Set classJava = sessionJava.GetClass("com.pasquier.DTO.WS/LogWSDTO")
Set objectJava = classJava.CreateObject
End Sub
Public Function getJavaObject()
Set getJavaObject = objectJava
End Function我试着把这叫做我的事业:
Class LogGetAllDocumentsDAO
Private ilog As LogWebService
Private logDTO As LogWSDTO
Private docDTO As LogGetAllDocumentsDTO
Public Sub New(logWSparam As LogWSDTO, docDTOparam As LogGetAllDocumentsDTO)
Set Me.logDTO = logWSparam
Set Me.docDTO = docDTOparam
End Sub
Public Sub appelLog()
Call ajouterParam()
Set ilog = New LogWebService()
Call ilog.setLog(logDTO.getJavaObject())
End Sub 我无法保存此更改:它返回:
"type mismatch on : GETJAVAOBJECT"因此,我尝试在LogWebService的java类中添加该方法。我试着在LS2J:
Public Function getJavaObject()
Set methodJava = classJava.GetMethod("getJavaObject","()Lcom/pasquier/DTO/WS/LogWSDTO;")
getJavaObject = objectJava.getJavaObject()
End Function我打电话给:
Public Sub appelLog()
Set ilog = New LogWebService()
Set logDTO = logDTO.getJavaObject
Call ilog.setLog(logDTO)它不起作用,同样的信息,我哭了!
发布于 2014-06-26 14:15:01
objectJava.setLog(logDTO) - logDTO必须是由LS2J生成的Java对象。它不适用于LotusScript类对象。
将方法getJavaObject()添加到LotusScript类LogWSDTO中,该类返回LS2J Java对象objectJava。以这种方式使用:
objectJava.setLog(logDTO.getJavaObject())这是一个有用的例子:
LotusScript代理:
Option Declare
UseLSX "*javacon"
Use "AandB"
Class LogWSDTO
sessionJava As JAVASESSION
classJava As JAVACLASS
objectJava As JAVAOBJECT
Public Sub New()
Set sessionJava = New JAVASESSION
Set classJava = sessionJava.GetClass("de.leonso.test/B")
Set objectJava = classJava.CreateObject
End Sub
Public Function getJavaObject()
Set getJavaObject = objectJava
End Function
End Class
Sub Initialize
Dim sessionJava As JAVASESSION
Dim classJavaA As JAVACLASS
Dim objectJavaA As JAVAOBJECT
Dim lsB As LogWSDTO
Set sessionJava = New JAVASESSION
Set classJavaA = sessionJava.GetClass("de.leonso.test/A")
Set objectJavaA = classJavaA.CreateObject
Set lsB = New LogWSDTO()
print objectJavaA.a(lsB.getJavaObject())
End SubJava ScriptLibrary“AandB”中的Java类:
package de.leonso.test;
public class A {
public String a(B b) {
return b.b();
}
}
package de.leonso.test;
public class B {
public String b() {
return ("hallo");
}
}https://stackoverflow.com/questions/24432443
复制相似问题