VBA and Java Webservice



我已经用Java(RMI)实现了一个WebService。在Excel中,我有两个Makros,一个通过Web服务从数据库中读取数据。另一个写入数据库。

通过Web服务从数据库中读取数据没有问题(函数:MyData[] getData() {...})但当我试图调用该方法时,该方法应该将数据写入数据库,我遇到了问题,即VBA代码中的给定数据在Java代码中为null。

功能:public void setData(final MyData[]) {...}

我调试后发现,VBA代码中的参数不为空。它只在Java代码中为null。

那么,有人知道数据可能会丢失在哪里吗?

我想我可能对XML或类似的东西有问题,但我真的不知道从哪里查找错误。

当然:这是代码-我把它缩短了一点,但主要功能是

顺便说一句,我现在把数据类型改为long,现在我得到了IllegalArgumentException

Java:

@WebMethod(operationName = "setData", action = "setData")
    public void setData(final long k)
    {
        myValue = k;
    }

VBA在第1张中,我称之为:

Call dataService.wsm_setData(5)

以及在serviceFile(使用Web Service Toolkit生成)中:

Private sc_DataServic As SoapClient30
Private Const c_WSDL_URL As String = "http://pcname:8010/myurl/data?wsdl"
Private Const c_SERVICE As String = "DataServiceService"
Private Const c_PORT As String = "DataServicePort"
Private Const c_SERVICE_NAMESPACE As String = "http://myurl"
Private Sub Class_Initialize()
    Set sc_DataServic = New SoapClient30
   sc_DataServic.MSSoapInit2 c_WSDL_URL, str_WSML, c_SERVICE, c_PORT, c_SERVICE_NAMESPACE
    sc_DataServic.ConnectorProperty("ProxyServer") = "<CURRENT_USER>" 
    sc_DataServic.ConnectorProperty("EnableAutoProxy") = True
    Set sc_DataServic.ClientProperty("GCTMObjectFactory") = New clsof_Factory_Data
End Sub
Public Function wsm_setData(ByVal dcml_arg0 As Double)
    On Error GoTo wsm_setDataTrap
    sc_DataServic.setData dcml_arg0
    Set sc_DataServic = Nothing
Exit Function
wsm_setDataTrap:
    DataServicErrorHandler "wsm_setData"
End Function

最新更新