2012-05-23 2 views
0

У меня есть этот веб-сервис:NoClassDefFoundError: относится к упаковке файлов для Glassfish?

 

    /** 
    * Web service operation 
    */ 
    @WebMethod(operationName = "executeCleanAndValidateExtractedDate") 
    public boolean executeCleanAndValidateExtractedDate() 
    { 
     try 
     { 
      CleanAndValidateExtractedData cav = new CleanAndValidateExtractedData(); 
      Transformation transformation = new DefaultTransformation(); 
      Step s1 = transformation.addStep(cav);   
      return transformation.execute(); 
     } 
     catch (RuntimeException ex) 
     { 
      Logger.getLogger(ExecuteKeymark.class.getName()).log(Level.SEVERE, null, ex); 
      return false; 
     } 
     catch(Exception ex) 
     { 
      Logger.getLogger(ExecuteKeymark.class.getName()).log(Level.SEVERE, null, ex); 
      return false; 
     } 
    } 
 

Когда я пытаюсь выполнить его, я получаю исключение:

 
javax.ejb.EJBException 
    at com.sun.ejb.containers.BaseContainer.processSystemException(BaseContainer.java:5193) 
    at com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:5091) 
    at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4879) 
... 
Caused by: java.lang.NoClassDefFoundError: com/medallion/etl/impl/AbstractStepSupport 

Я смущен, почему он может найти этот класс. Он был доступен во время выполнения, но больше не доступен. Есть ли что-то особенное, что мне нужно сделать для развертывания, чтобы он имел доступ к классу в Glassfish?

EDIT: Прикрепленный файл POM

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 

<groupId>com.dv</groupId> 
<artifactId>WS_3</artifactId> 
<version>1.0-SNAPSHOT</version> 
<packaging>ejb</packaging> 

<name>WS_3</name> 

<properties> 
    <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>com.medallion</groupId> 
     <artifactId>keymark.filemonitorEJB</artifactId> 
     <version>1.0-ALPHA</version> 
     <type>jar</type> 
    </dependency> 
    <dependency> 
     <groupId>com.medallion</groupId> 
     <artifactId>etl</artifactId> 
     <version>1.0-ALPHA</version> 
     <type>jar</type> 
    </dependency> 
    <dependency> 
     <groupId>javax</groupId> 
     <artifactId>javaee-api</artifactId> 
     <version>6.0</version> 
     <scope>provided</scope> 
    </dependency> 
</dependencies> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
       <compilerArguments> 
        <endorseddirs>${endorsed.dir}</endorseddirs> 
       </compilerArguments> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-ejb-plugin</artifactId> 
      <version>2.3</version> 
      <configuration> 
       <ejbVersion>3.1</ejbVersion> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.1</version> 
      <executions> 
       <execution> 
        <phase>validate</phase> 
        <goals> 
         <goal>copy</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>${endorsed.dir}</outputDirectory> 
         <silent>true</silent> 
         <artifactItems> 
          <artifactItem> 
           <groupId>javax</groupId> 
           <artifactId>javaee-endorsed-api</artifactId> 
           <version>6.0</version> 
           <type>jar</type> 
          </artifactItem> 
         </artifactItems> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 
</project> 

ответ

0

Убедитесь, что вы связывайте необходимые файлы фляги в файле войны/уха, так что они доступны во время выполнения, а не только во время компиляции.

+0

Я использую Netbeans и MAven для управления проектом. Любая идея, как я делаю это, используя это? – user489041

+0

Можете ли вы обновить сообщение своим pom.xml? – Attila

+0

Уверенная вещь, просто добавила ее – user489041

Смежные вопросы