2012-03-23 145 views
1

我現在正在使用axis2並使用E​​clipse生成一個web服務項目。現在我陷入困境。eclipse axis2 web服務錯誤

Java文件:

public class WebServiceServer{ 

public Map<String,String> getConfigInfo(List<Map<String,Object>> objectList){ 
    Map<String,String> returnMap = new HashMap<String, String>(); 

    try { 
     //do something 
    } catch (ConfigurationException e) { 
     e.printStackTrace(); 
    } 
    return returnMap; 
} 

}

我現在使用Eclipse的Java EE 3.6,我喜歡WTP插件。現在,我使用Eclipse並右鍵單擊我的項目,然後單擊新建 - >其他 - > Web服務。

但是當我啓動tomcat時,出現錯誤。

org.apache.axis2.deployment.DeploymentException: 
The following error occurred during schema generation: sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl cannot be cast to java.lang.Class 
at org.apache.axis2.deployment.ServiceBuilder.populateService(ServiceBuilder.java:433) 
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:370) 
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.loadServlet(StandardWrapper.java:1173) 
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993) 
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4421) 
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4734) 
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840) 
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 
at org.apache.catalina.core.StandardService.start(StandardService.java:525) 
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) 
at org.apache.catalina.startup.Catalina.start(Catalina.java:595) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) 

Caused by: org.apache.axis2.deployment.DeploymentException: The following error occurred during schema generation: sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl cannot be cast to java.lang.Class 
at org.apache.axis2.deployment.ServiceBuilder.populateService(ServiceBuilder.java:397) 

Caused by: java.lang.ClassCastException: sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl cannot be cast to java.lang.Class 

[ERROR] The WebServiceServer service, which is not valid, caused The following error occurred during schema generation: sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl cannot be cast to java.lang.Class 

org.apache.axis2.deployment.DeploymentException:架構生成過程中出現以下錯誤:sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl不能轉換爲java.lang.Class中

Caused by: org.apache.axis2.deployment.DeploymentException: The following error occurred during schema generation: sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl cannot be cast to java.lang.Class 



Someone told me that axis2 cannot deal with the return type is List or Map? 
Any replay is welcome. Thanks. 

回答

1

有人告訴我,axis2無法處理返回類型是List還是 Map?

那個人是對的。你需要返回數組,或者你的情況是數組的數組。

2

正如在上面的答案中所解釋的,只有Axis2 Trunk版本(1.7.0-SNAPSHOT)支持列表,地圖等集合。

除非您使用的是Axis2中繼版本(1.7.0-SNAPSHOT),否則不能使用它們。您必須與其他版本的Axis2一起使用陣列。

感謝和問候,

Harshana