【问题标题】:Error when I deploy Web Service using Axis2使用 Axis2 部署 Web 服务时出错
【发布时间】:2014-07-21 15:29:05
【问题描述】:

我有一个问题:

我有一个使用 Weka 和 Jena 库的 Java 类(带有动态 Web 项目)。 我想使用 Tomcat7 和 Axis2 将此类公开为 Web 服务。 我通过右键单击类并选择名为“Web 服务”的选项菜单来创建 Web 服务。

当我部署我的 Web 服务时,我收到此错误:

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 Libs 的方法时出现这个错误:

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;
    }

为什么会出现此错误?在 Java 中,我没有这个错误。

【问题讨论】:

  • 您是否部署了axis2.xml
  • 什么是axis2.xml?如果我不在我的代码中添加这个方法(我还有另外两个方法),我不会得到这个错误,只是我添加这个方法,我得到这个错误。即使在我不添加此方法的情况下,我也从未部署过axis2.xml
  • 你有提供这个的任何模块吗?
  • 不,我没有任何模块。为什么我会收到此错误?什么可能到期?
  • 所有这些错误都是因为你没有那些东西。

标签: java web-services tomcat axis2 jena


【解决方案1】:

我最近在使用axis2 + TomCat 7时遇到了这种错误。

我迷路了,我不知道问题出在哪里,因为我有所有正确的配置。

比我能够检测到的问题。问题出在我在非 Web 服务类上使用的方法名称上。

我有一个类 User 存储一些用户数据,所有属性都有各自的 getter 和 setter。然后这个类被一个 webservice 类使用。

这是导致异常的方法:

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

org.apache.axis2.deployment.DeploymentException:架构生成过程中出现以下错误:null

只需更改方法名称即可解决问题:

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

我是这样找到的:

  1. 我从 WebService 中删除了所有方法并检查它 已成功部署。

  2. 然后我开始一一重新插入WebMethods, 每次重新部署,直到我发现这个异常是什么时候引起的 我插入了一个以 User 对象作为参数的 WebMethod。

  3. 我从 User 类中删除了所有方法并重新部署了 具有所有 WebMethods 的 WebService 包括使用 User 对象并检查是否已成功部署。

  4. 然后我开始一一重新插入用户方法, 重新部署 WebService 直到我发现这个异常是 由上述方法引起的。

  5. 我更改了方法的名称,假设有一些名称解析 冲突。它奏效了!!!

我希望这些信息对未来可能面临这个问题的人有所帮助,因为我花了整整一夜的时间来解决这个问题。

【讨论】:

    猜你喜欢
    • 2012-12-04
    • 1970-01-01
    • 1970-01-01
    • 2012-06-22
    • 2015-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多