2012-12-17 94 views
0

我目前正在开发一个Web服务,在本地tomcat 7.0服务器上使用eclipse IDE和axis 2。部署axis2网络服务时出现零头异常

当我尝试部署服务,我得到:

[ERROR] The encoSendInterface 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:1266) 
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1185) 
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1080) 
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5015) 
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5302) 
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566) 
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556) 
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
at java.lang.Thread.run(Thread.java:722) 
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) 
... 27 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:385) 
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) 
... 27 more 
[INFO] org.apache.axis2.deployment.DeploymentException: The following error occurred during schema generation: null 

有什么办法找出来,是什么原因导致这种异常?

我的WS的当前版本不读任何配置文件。在构建Web服务时,是否有任何我不能使用的libriries,可能会导致整个演出崩溃?

问候, LuigiEd

+0

我已经解决了这个问题。其中一个W的公共方法有一个名称完全类似于其中一个类属性的参数。虽然这在常规(javaSE)开发中起作用,但它似乎在Web服务中造成麻烦。当我删除参数时,服务器正确部署。任何人都可以向我解释这种行为吗? – LuigiEdlCarno

回答

0

我已经解决了这个问题。其中一个W的公共方法有一个名称完全类似于其中一个类属性的参数。虽然这在常规(javaSE)开发中起作用,但它似乎在Web服务中造成麻烦。

2

如果这有助于任何人,我通过将@WebMethod(exclude = true)添加到我在服务类(用于依赖注入)上的一些setter解决了此问题。

根据JAX-WS Guide

如果未指定@WebMethod注释,所有公共方法都 暴露包括从java.lang.Object继承的方法 异常的继承方法。 @WebMethod注释的排除参数可用于控制公开的 的哪些方法。

0

从axis2 1.5.1升级到1.6.2后,我有相同(或非常相似)的问题。

将'@WebMethod(exclude = true)'添加到非webmethod公共方法为我解决了它。