2012-09-13 28 views
6

Tôi có dịch vụ web với phương pháp ném ngoại lệ tùy chỉnh của mình.@ApplicationException with Java 1.7

@WebMethod void someMethod(...) throws MyException 

MyException lớp được chú thích với @ApplicationException

@ApplicationException 
class public MyException extends Exception {...} 

tôi đã xây dựng dự án của tôi sử dụng maven, JDK 1.6jaxws-maven-plugin để tạo ra WSDL, và tất cả hoạt động tốt.
Nhưng bây giờ tôi muốn làm điều tương tự với JDK 1.7, và bây giờ tôi nhận được lỗi

Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions 
java.lang.StackTraceElement does not have a no-arg default constructor. 
    this problem is related to the following location: 
     at java.lang.StackTraceElement 
     at public java.lang.StackTraceElement[] java.lang.Throwable.getStackTrace() 
     at java.lang.Throwable 
     at private java.lang.Throwable[] com.MyPackage.MyExceptionBean.suppressed 
     at com.MyPackage.MyExceptionBean 

Bất kỳ ý tưởng?

khác nhau là với JDK 1.6 lớp MyExceptionBean được tạo ra như

public class MyExceptionBean { 

    private String message; 

nhưng với JDK 1,7

public class MyExceptionBean { 

    private String message; 
    private Throwable[] suppressed; 

jaxws-maven-plugin

<groupId>org.codehaus.mojo</groupId> 
<artifactId>jaxws-maven-plugin</artifactId> 
<version>1.10</version> 

Trả lời

2

Có vấn đề jaxws-maven-pluginjava 7 :-(
issue tracker

với phiên bản 2.2 hoạt động tốt

<groupId>org.jvnet.jax-ws-commons</groupId> 
<artifactId>jaxws-maven-plugin</artifactId> 
<version>2.2</version>