在开发grails项目中用到axis2-0.7.0插件遇到的问题
一,开发过程中可以正常使用,但是在打包过程中包一个错误:
[copy] Warning: C:\Users\Think\.grails\1.3.5\projects\utm-ncm\plugins\axis2-0.6.1\lib not found
导致这个问题的原因是,插件中一个指定打包地址填写错误。修改插件中一个文件
C:\Users\当前用户名\.grails\1.3.5\projects\utm-ncm\plugins\axis2-0.7.0\scripts\_Events.groovy
用记事本或其他文本编辑啊工具打开,将文件里0.6.1改为0.7.0,重新打包就可以。
原文
eventWarStart = { msg ->
Ant.copy(todir:"${grailsSettings.projectWorkDir}/staging/WEB-INF/lib", flatten:true, failonerror:false) {
fileset(dir:"${grailsSettings.projectPluginsDir}/axis2-0.6.1/lib") {
include(name:"*.mar")
}
}
}
修改后:
eventWarStart = { msg ->
Ant.copy(todir:"${grailsSettings.projectWorkDir}/staging/WEB-INF/lib", flatten:true, failonerror:false) {
fileset(dir:"${grailsSettings.projectPluginsDir}/axis2-0.7.0/lib") {
include(name:"*.mar")
}
}
}
二,将war包放在tomcat使用过程中会报一个问题
javax.servlet.ServletException: javax.servlet.ServletException: org.apache.axis2.deployment.DeploymentException: The system is attempting to engage a module that is not available: addressing
at org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:454)
at org.grails.axis2.GrailsAxis2Servlet.init(Unknown Source)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:809)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:291)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
Caused by: javax.servlet.ServletException: org.apache.axis2.deployment.DeploymentException: The system is attempting to engage a module that is not available: addressing
at org.grails.axis2.GrailsAxis2Servlet.initConfigContext(Unknown Source)
at org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:436)
... 13 more
Caused by: org.apache.axis2.deployment.DeploymentException: The system is attempting to engage a module that is not available: addressing
at org.apache.axis2.deployment.DeploymentEngine.loadFromClassPath(DeploymentEngine.java:173)
at org.wso2.spring.ws.axis2.SpringBeanSystemConfigurator.getAxisConfiguration(SpringBeanSystemConfigurator.java:93)
at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:68)
... 15 more
Caused by: org.apache.axis2.AxisFault: The system is attempting to engage a module that is not available: addressing
at org.apache.axis2.engine.AxisConfiguration.engageModule(AxisConfiguration.java:464)
at org.apache.axis2.engine.AxisConfiguration.engageGlobalModules(AxisConfiguration.java:591)
at org.apache.axis2.deployment.DeploymentEngine.engageModules(DeploymentEngine.java:615)
at org.apache.axis2.deployment.DeploymentEngine.loadFromClassPath(DeploymentEngine.java:169)
... 17 more
解决方法:
这个问题是由于缺少一个文件引起的,这个文件叫:addressing-1.41.mar
在插件的lib文件夹中可以找到这个文件,将它放在war包的lib包中,重新启动tomcat就可以正常访问