이 invokeDataControl 메소드를 해결하는 데 도움이되는 사항에 크게 감사드립니다. 문제의 전체적인 내용을 보려면 아래 링크를 찾으십시오. 기본적으로 오라클/자바 MAF 예제를 실행하여 개념을 이해하고 중요한 이동/중지 상황에 대해 사용자에게 제시하려고했습니다.Oracle MAF WebService invokeDataControlMethod SOAP 오류
환경 : https://java.net/projects/smuenchadf/pages/ADFMobile OR "http://deepakcs.blogspot.com/2013/06/offline-data-synchronization-for-adf.html" 4) MAC OS 10.9 5) (12C)에서 로직을 DSI037 : 2.0.1 3) 실시 예 시도
1) JDeveloper의 12.1.3.0.0 2) MAF 6) 오류 메시지
[심각 - oracle.adfmf.framework - HttpServiceConnection - 로그] 연결 오류 : - oracle.adfmf.framework - HttpTransport - 심각 parseResponse 500 응답 [에러 : {0}] { 1} [심각 - oracle.adfmf.framework - SoapTransportLayer - invokeSoapRequest]가 발생 예외 동안 SOAP 요청을 를 EndPoint 호출 : http://XXX.XXX.XXX.XXX:80/EJBSyncWebServiceApp/SessionFacadeBeanService 이 SOAPAction을 "http://service.soap.dsid.com/persistDepartments" 예외 : HTTP 상태 코드 500 내부 서버 오류 : 서버를 처리하지 못하도록하는 예상치 못한 상황 발생 의뢰.
7) 상세 정보 :
다음 코드가 실행되었습니다. 방법과 다른 모든 HTTP 분석기에서 잘 작동하거나 개별적으로 실행될 때 래퍼 AdfmfJavaUtilities.invokeDataControlMethod
public void syncDataFromOfflineToOnline() {
Trace.log(Utility.FrameworkLogger, Level.FINE, this.getClass(), "syncDataFromOfflineToOnline",
"Executing syncDataFromOfflineToOnline Method");
try {
Connection conn = DBConnectionFactory.getConnection();
conn.setAutoCommit(false);
PreparedStatement pStmt =
conn.prepareStatement("SELECT DEPARTMENT_ID, DEPARTMENT_NAME, LOCATION_NAME, STATUS from DEPARTMENTS WHERE STATUS IN (?, ?, ?)");
pStmt.setString(1, STATUS_NEWLY_CREATED);
pStmt.setString(2, STATUS_MODIFIED);
pStmt.setString(3, STATUS_DELETED);
ResultSet rs = pStmt.executeQuery();
while (rs.next()) {
List namesList = new ArrayList(1);
List paramsList = new ArrayList(1);
List typesList = new ArrayList(1);
Departments dept = new Departments();
dept.setDepartmentId(rs.getInt("DEPARTMENT_ID"));
dept.setDepartmentName(rs.getString("DEPARTMENT_NAME"));
dept.setLocationName(rs.getString("LOCATION_NAME"));
dept.setStatus(STATUS_NOT_CHANGED);
if (rs.getString("STATUS").equals(STATUS_NEWLY_CREATED)) {
System.out.println("I got a STATUS_NEWLY_CREATED");
GenericType gtDept =
GenericTypeBeanSerializationHelper.toGenericType("MYWS.Types.persistDepartments.arg0",
dept);
namesList.add("arg0");
paramsList.add(gtDept);
typesList.add(Object.class);
AdfmfJavaUtilities.invokeDataControlMethod("MYWS", null, "persistDepartments", namesList,
paramsList, typesList);
//Once the data sync with online, change the status for the row as STATUS_NOT_CHANGED
PreparedStatement pStmt1 =
conn.prepareStatement("UPDATE DEPARTMENTS SET STATUS=? WHERE DEPARTMENT_ID=?");
pStmt1.setString(1, STATUS_NOT_CHANGED);
pStmt1.setInt(2, rs.getInt("DEPARTMENT_ID"));
pStmt1.execute();
conn.commit();
<<< more codes >>>
고마워요. 내가 진술을 변경했지만 여전히 같은 오류가 발생했습니다. "persistDepartments"DataControl 개체에서 명령 단추를 사용하여 양식 ("arg0")을 만들면 정상적으로 작동하지만 invokeDataControlMethod를 통해 프로그래밍 방식으로 호출 될 때 왜 작동하지 않는지 이해하지 못합니다. 나에게도 오류 메시지는 일반적인 것으로 보입니다. 그렇다면 웹 응용 프로그램에 대한 약간의 도움이 도움이 될 수 있습니까? –
변경되었지만 동일한 오류가 발생했습니다. form ("arg0")을 사용하여 하나의 레코드를 추가해도 invokeDataControlMethod를 통해 프로그래밍 방식으로 호출 할 때 작동하지 않습니다. 나에게도 오류 메시지는 일반적인 것으로 보입니다. 그렇다면 웹 애플리케이션 지식을 가진 사람이 도움이 될 수 있습니까? 오류 메시지 [SEVERE - oracle.adfmf.framework - HttpServiceConnection - 로그] 연결 오류 : 500 [SEVERE - oracle.adfmf.framework - HttpTransport - parseResponse] 응답 [오류 : {0}] : {1} [SEVERE - oracle .adfmf.framework - SoapTransportLayer - invokeSoapRequest] –