Excel スプレッドシートが、JAX-WS で作成した Java Web サービスを呼び出して結果を取得すると思われるいくつかの問題に遭遇しています。ただし、NodeList を送信も受信もしないという問題があります。これを処理するために Web サービスをどのように変更する必要があるのか わかりません。
もう 1 つの問題は、MS Office 2003 Web Service Toolkit が Web メソッドを関数ではなくサブルーチンとして定義していることです。
私の Web メソッドは、エンドポイント インターフェイスで次のように定義されています。
@WebMethod
@WebResult(name="CreateWorkOrderItemResponse")
CreateWorkOrderItemResponse createWorkItems(@WebParam(name = "CreateWorkOrderItemRequest")CreateWorkOrderItemRequest request);
CreateWorkOrderItemRequestは次のように定義されます。
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"authentication",
"createData"
})
@XmlRootElement(name = "CreateWorkOrderItemRequest", namespace="")
public class CreateWorkOrderItemRequest {
@XmlElement(name = "authentication", required = true)
protected Authentication authentication = null;
@XmlElement(name = "create_data", required = true)
protected ArrayList<CreateWorkOrderItemData> createData = new ArrayList<CreateWorkOrderItemData>();
public Authentication getAuthentication() {
return authentication;
}
public void setAuthentication(Authentication authentication) {
this.authentication = authentication;
}
public ArrayList<CreateWorkOrderItemData> getCreateData() {
return createData;
}
public void setCreateData(ArrayList<CreateWorkOrderItemData> createData) {
this.createData = createData;
}
}
CreateWorkOrderItemResponseは次のように定義されます。
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"submissionResponse",
"errorList"
})
@XmlRootElement(name = "CreateWorkOrderItemResponse")
public class CreateWorkOrderItemResponse{
@XmlElement(name = "submission_response", required = true)
protected SubmissionResponse submissionResponse = new SubmissionResponse();
@XmlElementWrapper(name="error_list")
@XmlElement(name="error", required = true, nillable = true)
protected ArrayList<Error> errorList = new ArrayList<Error>();
public SubmissionResponse getSubmissionResponse() {
return submissionResponse;
}
public void setSubmissionResponse(SubmissionResponse submissionResponse) {
this.submissionResponse = submissionResponse;
}
public ArrayList<Error> getErrorList() {
return errorList;
}
public void addError(Error error) {
errorList.add(error);
}
public void addErrors(ArrayList<Error> errors) {
for (Error error : errors) {
errorList.add(error);
}
}
public void setErrorList(ArrayList<Error> errorList) {
this.errorList = errorList;
}
}
Web サービス ツールキットの結果は次のようになります。
Public Sub wsm_createWorkItems()
'*****************************************************************
'Proxy subroutine created from http://localhost:8080/gbswebsvcs/seiwebsvcs?wsdl.
'*****************************************************************
'Error Trap
On Error GoTo wsm_createWorkItemsTrap
sc_SEIWebServiceImplServ.createWorkItems
Exit Sub
wsm_createWorkItemsTrap:
SEIWebServiceImplServErrorHandler "wsm_createWorkItems"
End Sub
しかし、どうやら次のように出てくると思われます。
Public Function wsm_createWorkItems(ByVal any_CreateWorkOrderItemRequest As MSXML2.IXMLDOMNodeList) As MSXML2.IXMLDOMNodeList
'*****************************************************************
'Proxy function created from http://localhost:8080/gbswebsvcs/seiwebsvcs?wsdl.
'"wsm_createWorkItems, any_CreateWorkOrderItemRequest" is defined as XML. See Complex Types: XML Variables in
'Microsoft Office 2003 Web Services Toolkit Help for details on implementing XML variables.
'*****************************************************************
'Error Trap
On Error GoTo wsm_createWorkItemsTrap
Set wsm_createWorkItems = sc_DataServicesServer.createWorkItems(any_CreateWorkOrderItemRequest)
Exit Function
wsm_createWorkItemsTrap:
DataServicesServerErrorHandler "wsm_createWorkItems"
End Function
どうすればこの時点まで到達できますか? 助けてくれてありがとう。