나는 다음과 같은 웹 서비스가 : 문자열과 두 번째의 형태로 "사례 유형"이름을 가진 첫 번째 차원을 기입하도록되어웹 서비스에서 두 차원 객체 반환 값을 사용할 수 없습니다
@WebMethod(operationName = "getCaseTypeNamesAndIDs")
public Object [][] getCaseTypeNamesAndIDs() {
Object [][] nameIDs;
int [] ids;
ids = LOKmeth.getAllCaseTypes();
nameIDs = new Object [ids.length][2];
for(int ct = 0; ct < ids.length; ct++)
{
nameIDs[ct][0] = LOKmeth.getCaseTypeName(ids[ct]);
}
for(int ct = 0; ct < ids.length; ct++)
{
nameIDs[ct][1] = ids[ct];
}
return nameIDs;
}
을 차원에서 int로 만들어진 "case type"ID를 사용합니다. 나는 웹 서비스를 테스트 할 때
는 출력 :
방법 반환
java.util.List : "[[email protected], [email protected], [email protected]]"
SOAP 응답
나는 방법의 반환 배열에 대한 메모리 참조임을 알<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:getCaseTypeNamesAndIDsResponse xmlns:ns2="http://LOK_WS/">
<return>
<item xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Bugg</item>
<item xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:int">3</item>
</return>
<return>
<item xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Felrapport</item>
<item xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:int">1</item>
</return>
<return>
<item xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Printer on fire</item>
<item xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:int">2</item>
</return>
</ns2:getCaseTypeNamesAndIDsResponse>
</S:Body>
</S:Envelope>
.
SOAP 응답에 올바른 데이터가 들어 있습니다. 가 어떻게 내 JSP 페이지에서 데이터를 추출 않습니다
내 문제
는 다음과 같다? 나는 A java.lang.ClassCastException while accessing web service method written in java. jaxb을 읽고 자신의 해결 방법을 수행하려하지만 도움이되지 않았다<%
try
{
lok_ws.CaseManagementWs_Service service = new lok_ws.CaseManagementWs_Service();
lok_ws.CaseManagementWs port = service.getCaseManagementWsPort();
java.util.List<net.java.dev.jaxb.array.AnyTypeArray> caseTypeNames = null;
caseTypeNames = port.getCaseTypeNamesAndIDs();
Object[][] result = new Object[1][];
result[0] = caseTypeNames.toArray();
out.println("<option value=\"\">");
out.println(result[0][0].toString());
out.println("</option>");
} catch (Exception ex)
{
// TODO handle custom exceptions here
}
%>
:
나는 (일부 변화와 함께) 다음과 같은 뭔가를 시도했습니다.
이 방법이 제공하는 참조를 사용하려면 어떻게해야합니까?
미리 감사드립니다.