0

Java (RMI) で WebService を実装しました。Excelには2つのマクロがあり、1つはWebサービスを介してデータベースからデータを読み取ります。もう 1 つはデータベースに書き込みます。

Webサービスを介してデータベースからデータを読み取ることは問題ありません(関数:)がMyData[] getData() {...}、データベースにデータを書き込む必要があるメソッドを呼び出そうとすると、VBAコードからの指定されたデータがnullであるという問題がありますJavaコード。

関数: public void setData(final MyData[]) {...}

デバッグしたところ、VBA コードでパラメーターが null ではないことがわかりました。Java コードでは null のみです。

では、データが失われる可能性がある場所を知っている人はいますか?

XMLなどに問題があるのではないかと思ったのですが、どこで間違いを探すべきか本当にわかりません。

4

1 に答える 1

0

もちろん:これがコードです - 少し短くしましたが、主な機能は与えられています

ところで、データのタイプを long に変更したところ、IllegalArgumentException

ジャワ:

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

Sheet1のVBAは、たとえば次のように呼び出します。

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
于 2013-07-10T05:39:06.127 に答える