java.lang.StackTraceElement没有no-arg默认构造函数

时间:2014-03-01 09:15:50

标签: java web-services

我正在尝试部署一个Web服务,当我这样做时,我有下一个错误:

avax.xml.ws.WebServiceException: Unable to create JAXBContext
at com.sun.xml.ws.model.AbstractSEIModelImpl.createJAXBContext(AbstractSEIModelImpl.java:171)
at com.sun.xml.ws.model.AbstractSEIModelImpl.postProcess(AbstractSEIModelImpl.java:99)
at com.sun.xml.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:250)
at com.sun.xml.ws.server.EndpointFactory.createSEIModel(EndpointFactory.java:343)
at com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:205)
at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:513)
at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:568)
at org.glassfish.webservices.WSServletContextListener.registerEndpoint(WSServletContextListener.java:260)
at org.glassfish.webservices.WSServletContextListener.contextInitialized(WSServletContextListener.java:99)
at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:4750)
at com.sun.enterprise.web.WebModule.contextListenerStart(WebModule.java:550)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:5366)
at com.sun.enterprise.web.WebModule.start(WebModule.java:498)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:917)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:901)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:733)
at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2000)
at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1651)
at com.sun.enterprise.web.WebApplication.start(WebApplication.java:109)
at org.glassfish.internal.data.EngineRef.start(EngineRef.java:130)
at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:269)
at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:294)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:462)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:382)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:355)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:370)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1064)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:96)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1244)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1232)
at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:459)
at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:209)
at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:168)
at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:238)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.security.PrivilegedActionException: 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 java.lang.Exception
    at java.sql.SQLException
    at public java.sql.SQLException com.parkinsoncontrol.jaxws.SQLExceptionBean.nextException
    at com.parkinsoncontrol.jaxws.SQLExceptionBean
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.xml.ws.model.AbstractSEIModelImpl.createJAXBContext(AbstractSEIModelImpl.java:158)
... 49 more

我正在尝试部署的代码就是这个:

 @WebService(serviceName = "WsParkinsonControl")
  public class WsParkinsonControl {

     private Connection conectar(){

     this.conexion = Conector.getConnection(Conector.getCibertec());

     return this.conexion;
 }   
/**
 * Web service operation
 */
@WebMethod(operationName = "registerUser")
public TDataReturn registerUser(@WebParam(name = "user") TDataUser user) throws Exception {
    //TODO write your implementation code here:
    TDataReturn data= new TDataReturn();
    this.conexion = Conector.getConnection( Conector.getCibertec() );
    try {
        this.conexion.setAutoCommit(false);
        SQL="INSERT INTO user (name,patronimic,surname,phone,address,country,city,village,isPacient,isDoctor,licensenumber,email,password,licenseNumberDoctor,birthdate,parkinson_idparkinson) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
        this.pstm = this.conexion.prepareStatement(SQL);
       // `iduser` INT NOT NULL AUTO_INCREMENT,
        this.pstm.setString(1,user.getName());
        this.pstm.setString(2,user.getPatronimic());
        this.pstm.setString(3,user.getSurname());
        this.pstm.setString(4,user.getPhone());
        this.pstm.setString(5,user.getAddress());
        this.pstm.setString(6,user.getCountry());
        this.pstm.setString(7,user.getCity());
        this.pstm.setString(8,user.getVillage());
        this.pstm.setBoolean(9,user.isIsPacient());
        this.pstm.setBoolean(10,user.isIsDoctor());
        this.pstm.setString(11,user.getLicenseNumber());
        this.pstm.setString(12,user.getEmail());
        this.pstm.setString(13,user.getPassword());
        this.pstm.setString(14,user.getLicenseNumberDoctor());
        this.pstm.setString(15, user.getBirthdate());
        this.pstm.setInt(16,user.getParkinson());


        int ejecutado =  this.pstm.executeUpdate();
        System.out.println("Ejecutado es:"+ejecutado);
        if(ejecutado==0){
            data.setMiss(1);
            data.setDescription_m("Error after recording an user");
            throw new Exception("Error after recording an user");

        }
        System.out.println("Voy a hacer el commit");
        this.conexion.commit();
    } catch (SQLException ex) {
         System.out.println("Ejecutado es despues:0");
        Logger.getLogger(WsParkinsonControl.class.getName()).log(Level.SEVERE, null, ex);
    }
    this.conexion.close();
    data.setMiss(0);
    data.setDescription_m("");
    System.out.println("Data miss es:"+data.getMiss());
    return data;
}

/**
 * Web service operation
 */
@WebMethod(operationName = "modifyUser")
public TDataReturn modifyUser(@WebParam(name = "user") TDataUser user) {
    //TODO write your implementation code here:
    TDataReturn data= new TDataReturn();
    return data;
}



/**
 * Web service operation
 */
@WebMethod(operationName = "logon")
public Boolean logon(@WebParam(name = "login") String login, @WebParam(name = "password") String password) throws SQLException {
    //TODO write your implementation code here:
    this.conexion=conectar();
    System.out.println("Login is "+login);
    System.out.println("Password is "+password);
    try {
        SQL="SELECT idusuario from user where email=? AND password=?";
        this.pstm = this.conexion.prepareStatement(SQL);
        this.pstm.setString(1, login);
    this.pstm.setString(2, password);
    this.rs =  this.pstm.executeQuery();

        if(this.rs.getFetchSize()!=0){
            return true;
        }
        else{
            return false;
        }
    } catch (SQLException ex) {
        Logger.getLogger(WsParkinsonControl.class.getName()).log(Level.SEVERE, null, ex);
    }
    System.out.println("Login correcto");
    this.conexion.close();
    return true;
}

/**
 * Web service operation
 */
@WebMethod(operationName = "list_users")
public TAnswerUsers list_users(@WebParam(name = "iduser") int iduser) {
    //TODO write your implementation code here:
    TAnswerUsers result = new TAnswerUsers();


    this.conexion=conectar();
    try {
        //this.stm  = this.conexion.createStatement();

                if(iduser==0){
                    SQL="SELECT t1.id_cuenta as id_cuenta,t1.id_cuenta_padre as id_cuenta_padre,";

        SQL.concat("t1.nombre as nombre,t1.cif as cif,t1.impuesto as impuesto,t1.descuento as descuento,");

        SQL.concat("t1.nivel as nivel,t1.borrado as borrado,t1.cod_cliente as cod_cliente FROM cuentas t1");

        SQL.concat("WHERE t1.nivel >=?");

        SQL.concat("AND t1.borrado=?");

        this.pstm = this.conexion.prepareStatement(SQL);
        this.rs =  this.pstm.executeQuery();

         if(this.rs.getFetchSize()!=0){




             load_data_user(rs,result.getDataUser());
         }
         result.setMiss(0);
         result.setDescription_miss("");
         return result;
                }else{

                }

    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        result.setMiss(-1);
        result.setDescription_miss(e.getMessage());
        return result;
    }

            result.setMiss(0);
    result.setDescription_miss("");
    return result;
}

private void load_data_user(ResultSet rs2, TFieldsUser[] dataUser) throws SQLException {
    int index=0;
dataUser=resizeFieldsUser(dataUser,rs2);
while(rs2.next()){      
   dataUser[index]=new TFieldsUser();
   dataUser[index].setName(rs2.getString("name"));
   dataUser[index].setPatronimic(rs2.getString("patronimic"));
   dataUser[index].setSurname(rs2.getString("surname"));
   dataUser[index].setPhone(rs2.getString("phone"));
   dataUser[index].setAddress(rs2.getString("address"));
   dataUser[index].setCountry(rs2.getString("country"));
   dataUser[index].setCity(rs2.getString("city"));
   dataUser[index].setEmail(rs2.getString("email"));
   dataUser[index].setPassword(rs2.getString("password"));

     index++;
 }
}

private TFieldsUser[] resizeFieldsUser(TFieldsUser[] dataUser, ResultSet rs2) throws SQLException {
    int tam=rs.getFetchSize();

    int n=++tam;
    TFieldsUser [] newArray= new TFieldsUser[n];
    for(int cnt=0;cnt<rs.getFetchSize();cnt++){

        newArray[cnt]=dataUser[cnt];
    }

    return newArray;
 }

}

我正在使用netbeans 7.2.1和GlassFish 3.1.2,因为你可以检查它是一个简单的代码但是当我尝试部署它时崩溃了,请问我该如何解决这个问题?非常感谢

1 个答案:

答案 0 :(得分:0)

我已经改变了一次抛出SQLExecption,我已经改变了一次尝试捕捉和vo,它消失了,为什么?,我不知道但它有效。