2013-05-15 3 views
0

나는이 하루 종일 놀랐습니다. 이 문제와 관련하여 거의 모든 링크를 살펴 보았습니다. 나는 또한 지침을 따랐다 https://code.google.com/p/google-web-toolkit/wiki/RequestFactoryInterfaceValidation#ValidationTooljava.lang.RuntimeException : RequestFactory ValidationTool을 실행해야합니다.

나는 그 이유를 모르고있다. 왜 그런지 모르겠다.

나는 여기서 미쳐 가고있다. 도와주세요. 여기에 실종 된 것이 있습니까?

이것은

<?xml version="1.0" encoding="UTF-8"?> 
<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/maven-v4_0_0.xsd"> 

    <!-- POM file generated with GWT webAppCreator --> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.kivar.lumina</groupId> 
    <artifactId>client</artifactId> 
    <packaging>war</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>GWT Maven Archetype</name> 

    <properties> 
     <!-- Convenience property to set the GWT version --> 
     <gwtVersion>2.5.1</gwtVersion> 
     <!-- GWT needs at least java 1.5 --> 
     <webappDirectory>${project.build.directory}/${project.build.finalName}</webappDirectory> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>com.google.gwt</groupId> 
      <artifactId>gwt-servlet</artifactId> 
      <version>${gwtVersion}</version> 
      <scope>runtime</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.google.gwt</groupId> 
      <artifactId>gwt-user</artifactId> 
      <version>${gwtVersion}</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.7</version> 
      <scope>test</scope> 
     </dependency> 

     <!-- RequestFactory server --> 

     <dependency> 
      <groupId>com.google.web.bindery</groupId> 
      <artifactId>requestfactory-server</artifactId> 
      <version>${gwtVersion}</version> 
     </dependency> 

     <!-- Hibernate dependencies --> 
     <!-- <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> 
      <version>1.0.0.GA</version> </dependency> <dependency> <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-entitymanager</artifactId> <version>4.2.1.Final</version> 
      </dependency> --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>4.2.1.Final</version> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
      <version>4.3.1.Final</version> 
     </dependency> 
     <!-- Required by Hibernate validator because slf4j-log4j is optional in 
      the hibernate-validator POM --> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
      <version>1.6.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>1.6.1</version> 
     </dependency> 

     <!-- Oracle JDBC driver --> 
     <dependency> 
      <groupId>com.oracle</groupId> 
      <artifactId>ojdbc6</artifactId> 
      <version>11.2.0.3</version> 
     </dependency> 


    </dependencies> 

    <repositories> 
     <repository> 
      <id>codelds</id> 
      <url>https://code.lds.org/nexus/content/groups/main-repo</url> 
     </repository> 
    </repositories> 

    <build> 
     <!-- Generate compiled stuff in the folder used for developing mode --> 
     <outputDirectory>${webappDirectory}/WEB-INF/classes</outputDirectory> 

     <pluginManagement> 
      <plugins> 
       <!-- GWT Maven Plugin --> 
       <plugin> 
        <groupId>org.codehaus.mojo</groupId> 
        <artifactId>gwt-maven-plugin</artifactId> 
        <version>2.5.1</version> 
        <executions> 
         <execution> 
          <goals> 
           <goal>compile</goal> 
           <goal>test</goal> 
           <goal>i18n</goal> 
           <goal>generateAsync</goal> 
          </goals> 
         </execution> 
        </executions> 
        <!-- Plugin configuration. There are many available options, see gwt-maven-plugin 
         documentation at codehaus.org --> 
        <configuration> 
         <runTarget>Application.html</runTarget> 
         <hostedWebapp>${webappDirectory}</hostedWebapp> 
         <i18nMessagesBundle>com.kivar.lumina.client.Messages</i18nMessagesBundle> 
        </configuration> 
       </plugin> 

       <!-- Copy static web files before executing gwt:run --> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-war-plugin</artifactId> 
        <version>2.1.1</version> 
        <executions> 
         <execution> 
          <phase>compile</phase> 
          <goals> 
           <goal>exploded</goal> 
          </goals> 
         </execution> 
        </executions> 
        <configuration> 
         <webappDirectory>${webappDirectory}</webappDirectory> 
        </configuration> 
       </plugin> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <version>2.3.2</version> 
        <configuration> 
         <source>1.7</source> 
         <target>1.7</target> 
        </configuration> 
       </plugin> 

       <!-- RequestFactory Validation jar --> 
       <plugin> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <version>2.5.1</version> 
        <configuration> 
         <source>1.6</source> 
         <target>1.6</target> 
        </configuration> 
        <dependencies> 
         <dependency> 
          <groupId>com.google.web.bindery</groupId> 
          <artifactId>requestfactory-apt</artifactId> 
          <version>${gwtVersion}</version> 
         </dependency> 
        </dependencies> 
       </plugin> 
      </plugins> 
     </pluginManagement> 
    </build> 

</project> 

여기 실종 다른 있나요 내 pom.xml 파일입니까 ??

+0

가 $'에서'xxx.yyyDeobfuscatorBuilder' 클래스는 {거기에 문제없이 이클립스에서 GWT 응용 프로그램을 실행할 수 있습니다 webappDirectory}/WEB-INF/classes'? (여기서'xxx.yyy'는'RequestFactory' 인터페이스의 완전한 이름입니다) 또한 DevMode에만 문제가 있습니까? Eclipse 또는'mvn gwt : run'에서 시작 했습니까? 또는 자극 모드에서도? –

+0

Dev 모드에서만 사용 가능합니다.나는 당신이 말하는 수업을 볼 수 없습니다. Eclipse에서 시작되었습니다. 생산 방식 나는 이것을 보지 못해서 전혀 보지 못했다. 하지만'mvn install'을하면 성공적으로 완료됩니다 – LPD

+0

Eclipse에서 주석 처리를 구성 했습니까? JBoss에서 m2e-apt 플러그인을 사용 하시겠습니까? –

답변

2

의견에서 언급했듯이 "YourRequestFactory"DeobfuscatorBuilder.class 파일을 실행해야합니다. 비슷한 문제가있어서 비 Eclipse 의존적 인 솔루션을 원했습니다. 나는 다음과 같이 해결했다.

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.5.1</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
       <annotationProcessors> 
        <annotationProcessor>com.google.web.bindery.requestfactory.apt.RfValidator</annotationProcessor> 
       </annotationProcessors> 
      </configuration> 
      <dependencies> 
       <dependency> 
        <groupId>com.google.web.bindery</groupId> 
        <artifactId>requestfactory-apt</artifactId> 
        <version>${gwtVersion}</version> 
       </dependency> 
      </dependencies> 
     </plugin> 

또 다른 옵션은 com.google.web.bindery.requestfactory.apt.ValidationTool 도구를 직접 사용하는 것이다. 당신은

requestfactory-APT-2.5.1.jar
requestfactory 서버-2.5.1.jar가
당신의 RequestFactory 싶어-수 JDK 자바 (안 JRE)에서 실행하고 있어야합니다 클래스 및 종속성

클래스 경로에 있습니다. 2.5.1을 $ {gwtVersion}으로 바꿉니다. 내가 메이븐 전문가 아니라고하더라도 또한

set loc=d:\coding\java\workspace\j2ee\beg_1\Allo\web\src\main\java\ 
set tool=d:\coding\tools\Maven\.m2\repository\com\google\web\bindery\requestfactory-apt\2.5.1\requestfactory-apt-2.5.1.jar 
set server=d:\coding\tools\Maven\.m2\repository\com\google\web\bindery\requestfactory-server\2.5.1\requestfactory-server-2.5.1.jar 
set lib=d:\coding\tools\Maven\.m2\repository\bbc\juniperus\allo-entities\1.0\allo-entities-1.0.jar 
set lib2=d:\coding\tools\Maven\.m2\repository\org\hibernate\javax\persistence\hibernate-jpa-2.0-api\1.0.1.Final\hibernate-jpa-2.0-api-1.0.1.Final.jar 

set CP=%loc%;%tool%;%server%;%lib%;%lib2% 

cd %JAVA_HOME%/bin 

java -cp %CP% com.google.web.bindery.requestfactory.apt.ValidationTool d:/output.jar bbc.juniperus.allo.web.gwt.client.CalendarRequestFactory" 

을 : 당신은 (대신 JRE 자바의 JDK 자바를 실행하는 JDK 디렉토리에 CD-ED)의 .bat 파일 창문 그것을 단순히

java -cp <your_set_classpath> com.google.web.bindery.requestfactory.apt.ValidationTool <your wanna-be RequestFactory class to be validated> <another wannae-be factory>... 

예를 실행 메이븐에서 double maven-compiler-plugin 선언을하는 것이 빌드시에 실행되지 않는 검증에 어떻게 든 기여할 수 있는지 확신 할 수 없다.

+0

덕분에 많이 :( –

0

maven-compiler-plugin3. *을 얻으려면 추가 구성 키가 하나만 필요합니다 (forceJavacCompilerUse). 전체 예는 다음과 같이 보일 수 있습니다 : maven-compiler-plugin가 자동으로 검색 및 RequestFactory 주석 처리 툴을 적용 할 수 있기 때문에

<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <forceJavacCompilerUse>true</forceJavacCompilerUse> </configuration> <dependencies> <dependency> <groupId>com.google.web.bindery</groupId> <artifactId>requestfactory-apt</artifactId> <version>2.6.1</version> </dependency> </dependencies> </plugin>

당신은 이벤트가 annotationProcessors 구성 섹션을 필요로하지 않습니다.

0

Eclipse 또는 다른 IDE에서 GWT 응용 프로그램을 시작하면이 문제가 발생합니다. 메이븐에서 나는 그것을 보지 못했습니다.

문제를 해결하는 방법은 xxx.yyyDeobfuscatorBuilder 클래스를 생성하는 Maven을 사용하여 응용 프로그램을 시작하는 것입니다 그리고 당신은

+0

를 해결 ... 나 이클립스에서 주석 처리를 할 수 있습니다. 내 경우에는 –

+0

@ThomasBroyer은 주석 처리는이 경우 –

+0

에 항상 난독했습니다 수 있습니다 빌더 클래스가 생성되어야합니다 (일반적으로'.apt_generated' 디렉토리에 있음) –

관련 문제