&을 사용하는 코드 일부에서 클라이언트가 java2ws를 실행하는 데 문제가있어서 SOAP 웹 서비스에서 사용되는 클래스가 확장됩니다. 아직 혼란스러워? :)열거 형 Jaxb 및 cxf와 함께 "인수없는 기본 생성자가 없습니다"
SOAP 웹 서비스 (JBoss5, Java 6)가 노출됩니다. 누군가 Axis1을 사용하여 웹 서비스를 사용하고 있으며 데이터 유형과 클라이언트 스텁으로 jar 파일을 만듭니다. 그런 다음 내 유형 중 하나를 확장하는 자체 유형을 정의합니다. 내 형식에 열거 형이 포함되어 있습니다.
class MyParent {
private MyEnumType myEnum;
// getters, settters for myEnum;
}
class TheirChild extends MyParent {
...
}
그들이 (내 클래스를 확장하는) 자신의 코드에 java2ws를 실행하는, 그들은
Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 2 counts of IllegalAnnotationExceptions
net.foo.bar.MyEnuMType does not have a no-arg default constructor.
this problem is related to the following location:
at net.foo.bar.MyEnumType
at public net.foo.bar.MyEnumType net.foo.bar.MyParent.getMyEnum()
내가 정의한 열거 형은 다음과 같습니다 얻을. 이것은 소비 후 나오는 방법 지금,하지만 나는 그것을 응용 프로그램 서버에 정의하는 방법은 다음과 같습니다 목록을 처리하기 위해 JAXB의 무능력에 대한 (this one)처럼, 나는 온라인으로 일을 본 적이
@XmlType(name = "MyEnumType")
@XmlEnum
public enum MyEnumType {
Val1("Val1"),
Val2("Val2")
private final String value;
MyEnumType(String v) {
value = v;
}
public String value() {
return value;
}
public static MyEnumType fromValue(String v) {
if (v == null || v.length() == 0) {
return null;
}
if (v.equals("Val1")) {
return MyEnumType.Val1;
}
if (v.equals("Val2")) {
return MyEnumType.Val2;
}
return null;
}
}
및 기타 게시물 또는 그런 것들,하지만 난 내 열거에 대해 당황 스럽다. 나는 당신이 enum을위한 기본 생성자를 가질 수 없다는 것을 확신한다. (적어도 public-no-arg 생성자, Java는 나에게 시도 할 때 소리를 지른다.) 그래서이 에러를 가능하게하는 것이 확실하지 않다. 어떤 아이디어?
또한 "2 count of IllegalAnnotationsExceptions"는 내 코드에 실제로 비슷한 두 개의 enum이 있기 때문에 가능하지만 간결함을 위해이 예제에서 제외했습니다.
그것은 기술의 이상한 조합입니다. java2ws는 Apache CXF입니다. 맞습니까? Java5 기반입니다. Axis1은 고대이며 Java5 이전 버전입니다. 무슨 일 이니? – skaffman
클라이언트가 프로젝트 1을 위해 WSDL을 소비하고 사용하고있었습니다. 프로젝트 2가 프로젝트 2와 함께 왔고 (우리는 axis1 wsdl2java를 사용하여 얻은) 객체를 가져 와서 랩핑하고 CXF를 통해 이들을 내보내려고합니다. 다른 사람. 따라서 첫 번째 부분 (WSDL을 소비하고 사용하는 것)이 작동하는 것으로 보이지만, axis1 소비에서 나온 java2ws 객체를 시도하는 것은 꽤 까다 롭습니다. – Dave