2014-09-24 118 views
1

我创建了一个将SOAP请求发送到我的Tomcat Web服务器的Android应用程序。 Web服务器有一个调用另一个类(DataLayer.java)的Web服务(MongoService.wsdl),该类有一个尝试初始化MongClient类(新的MongoClient)的静态方法(getConnection),但失败时不会抛出异常。无法从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; 
     } 

logcat的:

09-24 23:23:14.223:W/System.err的(18551):的SOAPFault - 的faultcode: “soapenv:服务器。 W or System.err(18551):userException'faultstring: 'java.lang.reflect.InvocationTargetException'faultactor:'null' detail:[email protected] 09-24 23:23:14.223: W/System.err在 org.ksoap2.serialization.SoapSerializationEnvelope.p arseBody(SoapSerializationEnvelope.java:112) 09-24 23:23:14.223:W/System.err(18551):at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:137)09-24 23:23 :14.223:W/System.err(18551):at org.ksoap2.transport.Transport.parseResponse(Transport.java:63)09-24 23:23:14.223:W/System.err(18551):at org.ksoap2.transport.HttpTransportSE.call(HttpTransportSE.java:100) 09-24 23:23:14.223:W/System.err(18551):at com.example.myfirstapp.WebService.invokeHelloWorldWS(WebService。 java:51) 09-24 23:23:14.223:W/System.err(18551):at com.example.myfirstapp.MainActivity $ AsyncCallWS.doInBackground(MainActivity.java:251) 09-24 23:23 :14.223:W/System.err(18551) :at com.example.myfirstapp.MainActivity $ AsyncCallWS.doInBackground(MainActivity.java:1) 09-24 23:23:14.223:W/System.err(18551):at android.os.AsyncTask $ 2.call (AsyncTask.java:288)09-24 23:23:14.223: W/System.err(18551):at java.util.concurrent.FutureTask.run(FutureTask.java:237)09-24 23: 23:14.223:W/System.err(18551):at android.os.AsyncTask $ SerialExecutor $ 1.run(AsyncTask.java:231)09-24 23:23:14.223:W/System.err(18551) :at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 09-24 23:23:14.223:W/System.err(18551):at java.util.concurrent.ThreadPoolExecutor $ Worker。运行(ThreadPoolExecutor.java:587) 09-24 23:23:14.223:W/System.err(18551):at java.lang.Thread.run(Thread.java:841)09-24 23:23:14.233: I/dalvikvm(18551) ):日新:从4096调整JitTable到8192 09-24 23:23:55.967:d/dalvikvm(18551):GC_FOR_ALLOC释放3538K,19%的游离 16265K/20064K,暂停49ms,共49ms

回答

0

我解决了这个问题,将mongo-driver.jar添加到WEB-INF/lib文件夹中。如果使用eclipse和maven,可以通过在项目属性中添加Maven依赖关系到“部署程序集”来解决。