在项目开发中,遇到以服务方式启动axis2后,创建临时文件失败,最终导致axis无法启动,部分堆栈信息为:
[org.apache.axis2.deployment.ClusterBuilder]-[INFO](65) Clustering has been disabled
2012-05-24 15:11:56.964 [org.apache.axis2.deployment.ModuleDeployer]-[ERROR](107) The addressing-1.5.1.mar module, which is not valid, caused null
java.lang.ExceptionInInitializerError
at org.apache.axis2.deployment.util.Utils.createTempFile(Utils.java:224)
at org.apache.axis2.deployment.util.Utils.getURLsForAllJars(Utils.java:165)
at org.apache.axis2.deployment.util.Utils.createClassLoader(Utils.java:899)
at org.apache.axis2.deployment.repository.util.DeploymentFileData.setClassLoader(DeploymentFileData.java:115)
at org.apache.axis2.deployment.ModuleDeployer.deploy(ModuleDeployer.java:65)
at org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:136)
at org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:659)
at org.apache.axis2.deployment.RepositoryListener.init(RepositoryListener.java:251)
at org.apache.axis2.deployment.RepositoryListener.init2(RepositoryListener.java:68)
at org.apache.axis2.deployment.RepositoryListener.<init>(RepositoryListener.java:63)
at org.apache.axis2.deployment.DeploymentEngine.loadRepository(DeploymentEngine.java:147)
at org.apache.axis2.deployment.FileSystemConfigurator.getAxisConfiguration(FileSystemConfigurator.java:133)
at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:64)
at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContextFromFileSystem(ConfigurationContextFactory.java:206)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NullPointerException
at org.apache.axis2.deployment.util.TempFileManager.<clinit>(TempFileManager.java:191)
... 21 more
这是由于axis2在win7/server2008中,无法自动获取管理员权限,故而创建临时文件失败。解决方法是:
1.打开服务列表,找到axis2服务
2.右键单击该服务,选择“属性”
3.在弹出的对话框中选择“登陆”选项卡,选择“此账户”并输入administrator的账号密码,如图
4.重启axis2服务即可