2014-07-21 87 views
0

部署Web服務我有一個問題:錯誤,當我使用Axis2

我有一個Java類(動態Web項目),其使用了Weka和耶拿圖書館。 我想使用Tomcat7和Axis2將這個類作爲Web服務公開。 我通過右鍵單擊課程並選擇名爲「Web Service」的選項菜單來創建Web服務。

當我部署我的web服務,我得到這個錯誤:

public Instances Prova(SortedMap<String,String> map) throws Exception { 

     @SuppressWarnings("rawtypes") 
     Iterator it = map.entrySet().iterator(); 
     int riga=0; 
     int colonna=0; 
     String[][] data = new String[map.size()][map.size()]; 

     while (it.hasNext()) { 
      @SuppressWarnings("rawtypes") 
      Map.Entry entry = (Map.Entry)it.next(); 
      data [riga][colonna]=entry.getKey().toString(); 
      data [riga][colonna+1]=entry.getValue().toString(); 

      riga=riga+1; 
     } 

     int numInstances = data[0].length; 

     //ArrayList<Attribute> atts = new ArrayList<Attribute>(); 
     FastVector atts = new FastVector(); 
     List<Instance> instances = new ArrayList<Instance>(); 
     for(int dim = 0; dim < 2; dim++) 
     { 
      Attribute current = new Attribute("Attribute" + dim, (FastVector) null, dim); 
      if(dim == 0) 
      { 
       for(int obj = 0; obj < numInstances; obj++) 
       { 
        instances.add(new SparseInstance(2)); 
       } 
      } 

      for(int obj = 0; obj < numInstances; obj++) 
      { 
       instances.get(obj).setValue(current, data[obj][dim]); 
      } 
      atts.addElement(current); 
     } 

     Instances newDataset = new Instances("Dataset", atts, instances.size()); 

     for(Instance inst : instances){ 
      newDataset.add(inst); 
     } 
     return newDataset; 
    } 

爲什麼:

org.apache.axis2.deployment.DeploymentException: The following error occurred during schema generation: null 
    at org.apache.axis2.deployment.ServiceBuilder.populateService(ServiceBuilder.java:432) 
    at org.apache.axis2.deployment.repository.util.ArchiveReader.buildServiceGroup(ArchiveReader.java:101) 
    at org.apache.axis2.deployment.repository.util.ArchiveReader.processServiceGroup(ArchiveReader.java:178) 
    at org.apache.axis2.deployment.ServiceDeployer.deploy(ServiceDeployer.java:82) 
    at org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:136) 
    at org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:813) 
    at org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:144) 
    at org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:377) 
    at org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:254) 
    at org.apache.axis2.deployment.DeploymentEngine.loadServices(DeploymentEngine.java:142) 
    at org.apache.axis2.deployment.WarBasedAxisConfigurator.loadServices(WarBasedAxisConfigurator.java:283) 
    at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:95) 
    at org.apache.axis2.transport.http.AxisServlet.initConfigContext(AxisServlet.java:584) 
    at org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:454) 
    at org.apache.axis2.webapp.AxisAdminServlet.init(AxisAdminServlet.java:60) 
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1189) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1103) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1010) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4935) 
    at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5262) 
    at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5257) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: org.apache.axis2.deployment.DeploymentException: The following error occurred during schema generation: null 
    at org.apache.axis2.deployment.ServiceBuilder.populateService(ServiceBuilder.java:396) 
    ... 24 more 
Caused by: java.lang.NullPointerException 
    at org.apache.axis2.description.java2wsdl.DefaultSchemaGenerator.generateSchema(DefaultSchemaGenerator.java:606) 
    at org.apache.axis2.description.java2wsdl.DefaultSchemaGenerator.generateSchemaTypeforNameCommon(DefaultSchemaGenerator.java:1092) 
    at org.apache.axis2.description.java2wsdl.DefaultSchemaGenerator.generateSchemaForType(DefaultSchemaGenerator.java:996) 
    at org.apache.axis2.description.java2wsdl.DefaultSchemaGenerator.processMethods(DefaultSchemaGenerator.java:413) 
    at org.apache.axis2.description.java2wsdl.DefaultSchemaGenerator.generateSchema(DefaultSchemaGenerator.java:273) 
    at org.apache.axis2.deployment.util.Utils.fillAxisService(Utils.java:468) 
    at org.apache.axis2.deployment.ServiceBuilder.populateService(ServiceBuilder.java:388) 
    ... 24 more 
[ERROR] The Prova service, which is not valid, caused The following error occurred during schema generation: null 
org.apache.axis2.deployment.DeploymentException: The following error occurred during schema generation: null 
    at org.apache.axis2.deployment.ServiceBuilder.populateService(ServiceBuilder.java:432) 
    at org.apache.axis2.deployment.repository.util.ArchiveReader.buildServiceGroup(ArchiveReader.java:101) 
    at org.apache.axis2.deployment.repository.util.ArchiveReader.processServiceGroup(ArchiveReader.java:178) 
    at org.apache.axis2.deployment.ServiceDeployer.deploy(ServiceDeployer.java:82) 
    at org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:136) 
    at org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:813) 
    at org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:144) 
    at org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:377) 
    at org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:254) 
    at org.apache.axis2.deployment.DeploymentEngine.loadServices(DeploymentEngine.java:142) 
    at org.apache.axis2.deployment.WarBasedAxisConfigurator.loadServices(WarBasedAxisConfigurator.java:283) 
    at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:95) 
    at org.apache.axis2.transport.http.AxisServlet.initConfigContext(AxisServlet.java:584) 
    at org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:454) 
    at org.apache.axis2.webapp.AxisAdminServlet.init(AxisAdminServlet.java:60) 
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1189) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1103) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1010) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4935) 
    at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5262) 
    at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5257) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: org.apache.axis2.deployment.DeploymentException: The following error occurred during schema generation: null 
    at org.apache.axis2.deployment.ServiceBuilder.populateService(ServiceBuilder.java:396) 
    ... 24 more 
Caused by: java.lang.NullPointerException 
    at org.apache.axis2.description.java2wsdl.DefaultSchemaGenerator.generateSchema(DefaultSchemaGenerator.java:606) 
    at org.apache.axis2.description.java2wsdl.DefaultSchemaGenerator.generateSchemaTypeforNameCommon(DefaultSchemaGenerator.java:1092) 
    at org.apache.axis2.description.java2wsdl.DefaultSchemaGenerator.generateSchemaForType(DefaultSchemaGenerator.java:996) 
    at org.apache.axis2.description.java2wsdl.DefaultSchemaGenerator.processMethods(DefaultSchemaGenerator.java:413) 
    at org.apache.axis2.description.java2wsdl.DefaultSchemaGenerator.generateSchema(DefaultSchemaGenerator.java:273) 
    at org.apache.axis2.deployment.util.Utils.fillAxisService(Utils.java:468) 
    at org.apache.axis2.deployment.ServiceBuilder.populateService(ServiceBuilder.java:388) 
    ... 24 more 
[INFO] org.apache.axis2.deployment.DeploymentException: The following error occurred during schema generation: null 
[INFO] Deploying Web service: version.aar - file:/C:/apache-tomcat-8.0.1-src/wtpwebapps/ProvaListMap/WEB-INF/services/version.aar 
[WARN] No transportReceiver for org.apache.axis2.transport.http.AxisServletListener found. An instance for HTTP will be configured automatically. Please update your axis2.xml file! 

我所看到的,當我加入這個方法,它使用了Weka利布斯,我得到這個錯誤我得到這個錯誤?在Java中,我沒有這個錯誤。

+0

你有'axis2.xml'部署嗎? –

+0

什麼是axis2.xml?如果我不在我的代碼中添加此方法(我有另外兩種方法),則不會出現此錯誤,只是我添加了此方法,但出現此錯誤。即使在我不添加此方法的情況下,我也從未完成部署axis2.xml – Musich87

+0

您是否有任何模塊隨附? –

回答

2

我最近有這樣那樣的錯誤使用Axis2 + Tomcat的7

我迷路了,我不知道是來自,因爲我有所有正確的配置問題就來了。

比我能夠發現問題。問題出自我在非web服務類上使用的方法名稱。

我有一個類用戶存儲一些用戶數據和所有屬性都有其各自的getter和setter。這個類然後被一個web服務類使用。

這是造成異常的方法:

public class User { 
    ... 
    private boolean mIsYahoo; 
    ... 
    public void setIsYahoo(boolean isYahoo) { 
     mIsYahoo = isYahoo; 
    } 
    ... 
} 

org.apache.axis2.deployment.DeploymentException: The following error occurred during schema generation: null

的問題是固定的通過只是改變了方法名稱:

public void setYahoo(boolean isYahoo) { 
    mIsYahoo = isYahoo; 
} 

我能夠找到這個像這樣:

  1. 我刪除了WebService中的所有方法,並檢查它是否已成功部署。

  2. 然後,我開始由一個 重新部署每次重新插入的WebMethods一個,直到我發現,這個異常被當 我插入一個WebMethod是有用戶對象作爲參數引起的。

  3. 我抹去用戶類的所有方法和重新部署的 的WebService與所有的WebMethods這包括使用的 用戶對象,並檢查了成功部署的一個。

  4. 然後我開始重新插入User方法, 重新部署WebService直到我發現這個異常是由上面提到的方法引起的 。

  5. 我改變了方法的名稱,假設一些名稱解析 conflits。它的工作!

我希望這些信息對未來可能面臨這個問題的人有所幫助,因爲我花了整整一晚的時間來堅持這一點。