Axis2部署问题

时间:2016-09-06 09:51:51

标签: java web-services axis2

我使用axis2 1.7.3版本来满足我的Web服务需求。当我部署aar文件时,它显示以下异常。我在Web服务实现文件中使用了java 8功能(例如,流,过滤器等)。 axis2是否支持部署使用java 8功能实现的Web服务。

org.apache.axis2.deployment.DeploymentException:在模式生成期间发生以下错误:在字节码中查找参数名称时出错:文件中的意外字节     在org.apache.axis2.deployment.ServiceBuilder.populateService(ServiceBuilder.java:441)     at org.apache.axis2.deployment.repository.util.ArchiveReader.buildServiceGroup(ArchiveReader.java:109)     at org.apache.axis2.deployment.repository.util.ArchiveReader.processServiceGroup(ArchiveReader.java:232)     在org.apache.axis2.deployment.ServiceDeployer.deploy(ServiceDeployer.java:154)     在org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:149)     在org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:585)     在org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:164)     at org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:377)     在org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:254)     at org.apache.axis2.deployment.RepositoryListener.startListener(RepositoryListener.java:371)     在org.apache.axis2.deployment.scheduler.SchedulerTask.checkRepository(SchedulerTask.java:73)     在org.apache.axis2.deployment.scheduler.SchedulerTask.run(SchedulerTask.java:94)     在org.apache.axis2.deployment.scheduler.Scheduler $ SchedulerTimerTask.run(Scheduler.java:93)     at java.util.TimerThread.mainLoop(Unknown Source)     在java.util.TimerThread.run(未知来源) 由以下原因引起:org.apache.axis2.deployment.DeploymentException:在模式生成期间发生以下错误:在字节码中查找参数名称时出错:文件中的意外字节     在org.apache.axis2.deployment.ServiceBuilder.populateService(ServiceBuilder.java:404)     ......还有14个 引起:java.lang.IllegalStateException:在字节码中查找参数名称时出错:文件中的意外字节     在org.apache.axis2.description.java2wsdl.bytecode.ClassReader.readCpool(ClassReader.java:354)     在org.apache.axis2.description.java2wsdl.bytecode.ParamReader。(ParamReader.java:78)     在org.apache.axis2.description.java2wsdl.bytecode.ParamReader。(ParamReader.java:57)     在org.apache.axis2.description.java2wsdl.bytecode.ChainedParamReader。(ChainedParamReader.java:52)     在org.apache.axis2.description.java2wsdl.bytecode.MethodTable。(MethodTable.java:31)     在org.apache.axis2.description.java2wsdl.DefaultSchemaGenerator。(DefaultSchemaGenerator.java:177)     at org.apache.axis2.deployment.util.Utils.fillAxisService(Utils.java:454)     在org.apache.axis2.deployment.ServiceBuilder.populateService(ServiceBuilder.java:396)     ......还有14个

2 个答案:

答案 0 :(得分:6)

不,Axis2(我使用1.7.4)在实现类中使用Java 8功能时不起作用,因为在某种程度上,轴在分析该字节码时存在问题。

作为一种解决方法,删除骨架实现中的Java 8功能(例如流)解决了我的问题。您可以在Web服务实现类中使用这些功能(使用Axis2时)。

答案 1 :(得分:1)

快速浏览一下Axis源代码(https://svn.apache.org/repos/asf/axis/axis2/java/core/tags/v1.0/modules/java2wsdl/src/org/apache/ws/java2wsdl/bytecode/ClassReader.java),看起来你的类文件有问题(“损坏的类文件”,第354行)。