2014-09-24 4 views
1

Tomcat 웹 서버에 SOAP 요청을 보내는 Android 앱을 만들었습니다. 웹 서버에 MongClient 클래스 (새 MongoClient)를 초기화하려고 시도하지만 예외가 발생하지 않고 실패하는 정적 메서드 (getConnection)가있는 다른 클래스 (DataLayer.java)를 호출하는 웹 서비스 (MongoService.wsdl)가 있습니다.webservice에서 mongodb에 연결할 수 없습니다.

이 기능을 Java 응용 프로그램에서 실행하면 완벽하게 작동합니다.

있어서

/**Utility to Get the Connection from the database*/ 
    public static DBCollection getConnection(String dbName, String collectionName)throws UnknownHostException { 

     MongoClient mongo = null; 
     try { 
      mongo = new MongoClient("localhost" , 27017); 
     } catch (Exception e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
      /**Gets database, incase if the database is not existing 
       MongoDB Creates it for you*/ 
      DB db = mongo.getDB(dbName); 

      /**Gets collection/table from database specified if 
       collection doesn't exists, MongoDB will create it for 
       you*/ 
      DBCollection table = db.getCollection(collectionName); 
      return table; 
     } 

로그 캣 :

09-24 23 : 23 : 14.223 : System.err에/W (18,551)의 SOAPFault - faultCode를 : 'soapenv : 서버. userException '오류 문자열 : '오류 코드 : 'null' 세부 사항 : [email protected] 09-24 23 : 23 : 14.223 : 승/System.err (18551) : org.ksoap2.serialization.SoapSerializationEnvelope.p arseBody (SoapSerializationEnvelope.java:112) 09-24 23 : 23 : 14.223 : W/System.err (18551) : org.ksoap2.SoapEnvelope.parse (SoapEnvelope.java:137) 09-24 23:23 : 14.223 : W/System.err (18551) : org.ksoap2.transport.Transport.parseResponse (Transport.java:63) 09-24 23 : 23 : 14.223 : W/System.err (18551) : at (WebService. WebService.). java : 51) 09-24 23 : 23 : 14.223 : W/System.err (18551) : com.example.myfirstapp.MainActivity $ AsyncCallWS.doInBackground (MainActivity.java:251) 09-24 23:23 : 14.223 : 승/System.err (18551) : com.example.myfirstapp.MainActivity $ AsyncCallWS.doInBackground (MainActivity.java:1) 09-24 23 : 23 : 14.223 : W/System.err (18551) : android.os.AsyncTask $ 2.call (AsyncTask.java:288) 09-24 23 : 23 : 14.223 : 승/System.err (18551) : 에서 java.util.concurrent.FutureTask.run (FutureTask.java:237) 09-24 23 : 23 : 14.223 : W/System.err (18551) : android.os.AsyncTask $ SerialExecutor $ 1.run (AsyncTask.java:231) 09-24 23 : 23 : 14.223 : W/System.err (18551) : 에서09-24 23 : 23 : 14.223 : W/System.err (18551) : 에서 java.util.concurrent.ThreadPoolExecutor $ Worker로 java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1112)를 수정하십시오. 실행 (ThreadPoolExecutor.java:587) 09-24 23 : 23 : 14.223 : W/System.err (18551) : 에 있음 java.lang.Thread.run (Thread.java:841) 09-24 23 : 23 : 14.233 : I/dalvikvm (18551)) 지트 : 23 : 55.967 : 8192 09-24 23 4096에서 JitTable 크기 조정 D/dalvikvm (18,551) GC_FOR_ALLOC는 3538K 총 무료 16265K/20064K, 49ms를 일시 19 %, 해방 49ms

답변

0

필자는 mongo-driver.jar을 WEB-INF/lib 폴더에 추가하여이 문제를 해결했습니다. eclipse와 maven을 사용하는 경우 프로젝트 속성의 "배포 어셈블리"에 maven 종속성을 추가하여 해결할 수 있습니다.

관련 문제