0

私は現在、ローカルのTomcat7.0サーバーでEclipseIDEとAxis2を使用してWebサービスの開発を開始しています。

サービスをデプロイしようとすると、次のようになります。

[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サービスを構築するときに、ショー全体をクラッシュさせる可能性のある、使用できないライブラリはありますか?

よろしく、LuigiEd

4

3 に答える 3

2

これが誰かを助ける場合に備え@WebMethod(exclude = true)て、サービスクラスに持っていたいくつかのセッターに追加することでこの問題を解決しました(依存性注入のため)。

JAX-WSガイドによると

@WebMethod アノテーションが指定されていない場合、java.lang.Object から継承されたメソッドを除いて、継承されたメソッドを含むすべてのパブリック メソッドが公開されます。@WebMethod アノテーションの exclude パラメータを使用して、公開するメソッドを制御できます。

于 2013-09-27T22:20:51.547 に答える
0

問題を解決しました。Ws のパブリック メソッドの 1 つに、クラスの属性の 1 つとまったく同じ名前のパラメーターがありました。これは通常の (javaSE) 開発では機能しますが、Web サービスでは問題が発生するようです。

于 2013-01-22T10:34:15.847 に答える
0

axis2 1.5.1 から 1.6.2 にアップグレードした後、同じ (または非常に類似した) 問題が発生しました。

'@WebMethod(exclude = true)' を webmethod 以外のパブリック メソッドに追加すると、修正されました。

于 2017-05-19T10:02:34.777 に答える