2
다음과 같은 추상 클래스가 있습니다.Java (Apache CXF, Axis 2)의 Parametrized 클래스에서 웹 서비스 (WSDL 1.2 이상) 생성
public abstract class Entity<PK extends Serializable> implements Serializable {
private PK id;
//getters and setters generated here....
}
public class User extends Entity<Long> {
//all attributes, getters and setters are done here...
}
내 서비스는이
public interface EntityService {
public void create(Entity<? extends Serializable> entity) throws ServiceException;
public boolean delete(Entity<? extends Serializable> entity) throws ServiceException;
}
처럼 보이는 내 구현 클래스 EntityServiceImpl
에 있습니다.
아파치 CXF와 웹 서비스 생성을 수행 할 때 내가 얻을 다음과 같은 예외 :
Error: java.lang.ClassCastException: sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl cannot be cast to java.lang.reflect.TypeVariable
java.lang.RuntimeException: java.lang.ClassCastException: sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl cannot be cast to java.lang.reflect.TypeVariable
at org.apache.cxf.frontend.AbstractServiceFactory.createService(AbstractServiceFactory.java:41)
at org.apache.cxf.tools.java2wsdl.processor.JavaToWSDLProcessor.process(JavaToWSDLProcessor.java:128)
at org.apache.cxf.tools.java2ws.JavaToWSContainer.processWSDL(JavaToWSContainer.java:109)
at org.apache.cxf.tools.java2ws.JavaToWSContainer.execute(JavaToWSContainer.java:75)
at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:103)
at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:58)
at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:40)
at org.apache.cxf.tools.java2ws.JavaToWS.run(JavaToWS.java:77)
at org.apache.cxf.tools.java2ws.JavaToWS.main(JavaToWS.java:45)
Caused by: java.lang.ClassCastException: sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl cannot be cast to java.lang.reflect.TypeVariable
at org.apache.cxf.jaxb.JAXBContextInitializer.addType(JAXBContextInitializer.java:232)
at org.apache.cxf.jaxb.JAXBContextInitializer.addType(JAXBContextInitializer.java:211)
내 질문 : 나는 유형을 매개 변수화 또는 제네릭을 사용하고있다 웹 서비스를 생성하려면 어떻게
?