0

I want to package my GWT 2.3 Application to a war file and deploy it on a weblogic server. I found this solution with ANT http://www.rubiconred.com/blog/build-package-a-gwt-app-to-war-using-ant/. But there is a Problem. The compile target throws an error and it looks to me like ANT is using the wrong Java version. But when I do Run As -> Ant Build... -> JRE The version is correct (1.6.0_11). So the solution from this question did not work. And I am yet not so sure if the java version is the problem.

The console output looks like this:

Buildfile: C:\projects\logdashboard\LogDashboard\warbuilder.xml
prepare:
compile:
    [javac] Compiling 124 source files to C:\projects\logdashboard\LogDashboard\build
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\shared\dto\ApplicationDto.java:22: package javax.validation.constraints does not exist
    [javac] import javax.validation.constraints.Pattern;
    [javac]                                    ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\shared\dto\UserDto.java:20: package javax.validation.constraints does not exist
    [javac] import javax.validation.constraints.Pattern;
    [javac]                                    ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\client\ValidatorFactory.java:18: cannot find symbol
    [javac] symbol  : class Validator
    [javac] location: package javax.validation
    [javac] import javax.validation.Validator;
    [javac]                        ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\client\ValidatorFactory.java:36: cannot access javax.validation.ValidatorFactory
    [javac] class file for javax.validation.ValidatorFactory not found
    [javac] public class ValidatorFactory extends AbstractGwtValidatorFactory {
    [javac]        ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\client\ValidatorFactory.java:71: cannot find symbol
    [javac] symbol  : class Validator
    [javac] location: class com.roche.research.logdashboard.client.ValidatorFactory
    [javac]     public interface GwtValidator extends Validator {
    [javac]                                           ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\client\activity\ApplicationAddPresenter.java:22: cannot find symbol
    [javac] symbol  : class ConstraintViolation
    [javac] location: package javax.validation
    [javac] import javax.validation.ConstraintViolation;
    [javac]                        ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\client\activity\ApplicationAddPresenter.java:23: cannot find symbol
    [javac] symbol  : class Validator
    [javac] location: package javax.validation
    [javac] import javax.validation.Validator;
    [javac]                        ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\client\view\ApplicationAddViewImpl.java:25: cannot find symbol
    [javac] symbol  : class Validation
    [javac] location: package javax.validation
    [javac] import javax.validation.Validation;
    [javac]                        ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\client\view\ApplicationEditViewImpl.java:25: cannot find symbol
    [javac] symbol  : class Validation
    [javac] location: package javax.validation
    [javac] import javax.validation.Validation;
    [javac]                        ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\client\view\UserAddViewImpl.java:23: cannot find symbol
    [javac] symbol  : class Validation
    [javac] location: package javax.validation
    [javac] import javax.validation.Validation;
    [javac]                        ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\client\view\UserEditViewImpl.java:23: cannot find symbol
    [javac] symbol  : class Validation
    [javac] location: package javax.validation
    [javac] import javax.validation.Validation;
    [javac]                        ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\server\domain\logparser\DateUtil.java:23: package com.ibm.icu.text does not exist
    [javac] import com.ibm.icu.text.SimpleDateFormat;
    [javac]                        ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\server\domain\logparser\LogFileUtil.java:22: package org.apache.commons.lang.time does not exist
    [javac] import org.apache.commons.lang.time.DateUtils;
    [javac]                                    ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\shared\AutoinjectingRemoteServlet.java:19: package javax.servlet does not exist
    [javac] import javax.servlet.ServletConfig;
    [javac]                     ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\shared\AutoinjectingRemoteServlet.java:20: package javax.servlet does not exist
    [javac] import javax.servlet.ServletException;
    [javac]                     ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\shared\AutoinjectingRemoteServlet.java:38: cannot access javax.servlet.http.HttpServlet
    [javac] class file for javax.servlet.http.HttpServlet not found
    [javac] public class AutoinjectingRemoteServlet extends RemoteServiceServlet {
    [javac]        ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\shared\AutoinjectingRemoteServlet.java:55: cannot find symbol
    [javac] symbol  : class ServletConfig
    [javac] location: class com.roche.research.logdashboard.shared.AutoinjectingRemoteServlet
    [javac]     public void init(ServletConfig config) throws ServletException {
    [javac]                      ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\shared\AutoinjectingRemoteServlet.java:55: cannot find symbol
    [javac] symbol  : class ServletException
    [javac] location: class com.roche.research.logdashboard.shared.AutoinjectingRemoteServlet
    [javac]     public void init(ServletConfig config) throws ServletException {
    [javac]                                                   ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\shared\ValidationUtil.java:43: cannot find symbol
    [javac] symbol  : class ConstraintViolation
    [javac] location: class com.roche.research.logdashboard.shared.ValidationUtil<T>
    [javac]     public String getErrorMessage(Set<ConstraintViolation<T>> violations) {
    [javac]                                       ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\shared\dto\ApplicationDto.java:46: cannot find symbol
    [javac] symbol  : class Pattern
    [javac] location: class com.roche.research.logdashboard.shared.dto.ApplicationDto
    [javac]     @Pattern(regexp = "^(http|ftp|https){1}://.*$", message = "This is no correct url.")
    [javac]      ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\shared\dto\UserDto.java:47: cannot find symbol
    [javac] symbol  : class Pattern
    [javac] location: class com.roche.research.logdashboard.shared.dto.UserDto
    [javac]     @Pattern(regexp = "^.+\\..+@roche.com$", message = "This is no roche email adresse.")
    [javac]      ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\client\ValidatorFactory.java:40: method does not override or implement a method from a supertype
    [javac]     @Override
    [javac]     ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\client\activity\ApplicationAddPresenter.java:118: cannot find symbol
    [javac] symbol  : class Validator
    [javac] location: class com.roche.research.logdashboard.client.activity.ApplicationAddPresenter
    [javac]         Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
    [javac]         ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\client\activity\ApplicationAddPresenter.java:119: cannot find symbol
    [javac] symbol  : class ConstraintViolation
    [javac] location: class com.roche.research.logdashboard.client.activity.ApplicationAddPresenter
    [javac]         Set<ConstraintViolation<ApplicationDto>> violations = validator.validate(applicationDto);
    [javac]             ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\client\view\ApplicationAddViewImpl.java:174: cannot find symbol
    [javac] symbol  : class Validator
    [javac] location: class com.roche.research.logdashboard.client.view.ApplicationAddViewImpl
    [javac]         Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
    [javac]         ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\client\view\ApplicationAddViewImpl.java:174: cannot find symbol
    [javac] symbol  : variable Validation
    [javac] location: class com.roche.research.logdashboard.client.view.ApplicationAddViewImpl
    [javac]         Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
    [javac]                               ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\client\view\ApplicationAddViewImpl.java:175: cannot find symbol
    [javac] symbol  : class ConstraintViolation
    [javac] location: class com.roche.research.logdashboard.client.view.ApplicationAddViewImpl
    [javac]         Set<ConstraintViolation<ApplicationDto>> violations = validator.validateProperty(application, "url");
    [javac]             ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\client\view\ApplicationEditViewImpl.java:182: cannot find symbol
    [javac] symbol  : class Validator
    [javac] location: class com.roche.research.logdashboard.client.view.ApplicationEditViewImpl
    [javac]         Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
    [javac]         ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\client\view\ApplicationEditViewImpl.java:182: cannot find symbol
    [javac] symbol  : variable Validation
    [javac] location: class com.roche.research.logdashboard.client.view.ApplicationEditViewImpl
    [javac]         Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
    [javac]                               ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\client\view\ApplicationEditViewImpl.java:183: cannot find symbol
    [javac] symbol  : class ConstraintViolation
    [javac] location: class com.roche.research.logdashboard.client.view.ApplicationEditViewImpl
    [javac]         Set<ConstraintViolation<ApplicationDto>> violations = validator.validateProperty(application, "url");
    [javac]             ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\client\view\UserAddViewImpl.java:149: cannot find symbol
    [javac] symbol  : class Validator
    [javac] location: class com.roche.research.logdashboard.client.view.UserAddViewImpl
    [javac]         Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
    [javac]         ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\client\view\UserAddViewImpl.java:149: cannot find symbol
    [javac] symbol  : variable Validation
    [javac] location: class com.roche.research.logdashboard.client.view.UserAddViewImpl
    [javac]         Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
    [javac]                               ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\client\view\UserAddViewImpl.java:150: cannot find symbol
    [javac] symbol  : class ConstraintViolation
    [javac] location: class com.roche.research.logdashboard.client.view.UserAddViewImpl
    [javac]         Set<ConstraintViolation<UserDto>> violations = validator.validateProperty(user, "email");
    [javac]             ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\client\view\UserEditViewImpl.java:155: cannot find symbol
    [javac] symbol  : class Validator
    [javac] location: class com.roche.research.logdashboard.client.view.UserEditViewImpl
    [javac]         Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
    [javac]         ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\client\view\UserEditViewImpl.java:155: cannot find symbol
    [javac] symbol  : variable Validation
    [javac] location: class com.roche.research.logdashboard.client.view.UserEditViewImpl
    [javac]         Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
    [javac]                               ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\client\view\UserEditViewImpl.java:156: cannot find symbol
    [javac] symbol  : class ConstraintViolation
    [javac] location: class com.roche.research.logdashboard.client.view.UserEditViewImpl
    [javac]         Set<ConstraintViolation<UserDto>> violations = validator.validateProperty(user, "email");
    [javac]             ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\server\domain\logparser\DateUtil.java:50: cannot find symbol
    [javac] symbol  : class SimpleDateFormat
    [javac] location: class com.roche.research.logdashboard.server.domain.logparser.DateUtil
    [javac]         SimpleDateFormat format = new SimpleDateFormat(ServerProp.get().getProperty("LOGFILE_EXTENSION_DATE_PATTERN"));
    [javac]         ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\server\domain\logparser\DateUtil.java:50: cannot find symbol
    [javac] symbol  : class SimpleDateFormat
    [javac] location: class com.roche.research.logdashboard.server.domain.logparser.DateUtil
    [javac]         SimpleDateFormat format = new SimpleDateFormat(ServerProp.get().getProperty("LOGFILE_EXTENSION_DATE_PATTERN"));
    [javac]                                       ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\server\domain\logparser\DateUtil.java:67: cannot find symbol
    [javac] symbol  : class SimpleDateFormat
    [javac] location: class com.roche.research.logdashboard.server.domain.logparser.DateUtil
    [javac]         SimpleDateFormat format = new SimpleDateFormat(ServerProp.get().getProperty("LOGFILE_EXTENSION_DATE_PATTERN"));
    [javac]         ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\server\domain\logparser\DateUtil.java:67: cannot find symbol
    [javac] symbol  : class SimpleDateFormat
    [javac] location: class com.roche.research.logdashboard.server.domain.logparser.DateUtil
    [javac]         SimpleDateFormat format = new SimpleDateFormat(ServerProp.get().getProperty("LOGFILE_EXTENSION_DATE_PATTERN"));
    [javac]                                       ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\server\domain\logparser\DateUtil.java:78: cannot find symbol
    [javac] symbol  : class SimpleDateFormat
    [javac] location: class com.roche.research.logdashboard.server.domain.logparser.DateUtil
    [javac]         SimpleDateFormat format = new SimpleDateFormat(ServerProp.get().getProperty("LOGLINE_DATE_PATTERN"));
    [javac]         ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\server\domain\logparser\DateUtil.java:78: cannot find symbol
    [javac] symbol  : class SimpleDateFormat
    [javac] location: class com.roche.research.logdashboard.server.domain.logparser.DateUtil
    [javac]         SimpleDateFormat format = new SimpleDateFormat(ServerProp.get().getProperty("LOGLINE_DATE_PATTERN"));
    [javac]                                       ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\server\domain\logparser\DateUtil.java:95: cannot find symbol
    [javac] symbol  : class SimpleDateFormat
    [javac] location: class com.roche.research.logdashboard.server.domain.logparser.DateUtil
    [javac]         SimpleDateFormat format = new SimpleDateFormat(ServerProp.get().getProperty("LOGLINE_DATE_PATTERN"));
    [javac]         ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\server\domain\logparser\DateUtil.java:95: cannot find symbol
    [javac] symbol  : class SimpleDateFormat
    [javac] location: class com.roche.research.logdashboard.server.domain.logparser.DateUtil
    [javac]         SimpleDateFormat format = new SimpleDateFormat(ServerProp.get().getProperty("LOGLINE_DATE_PATTERN"));
    [javac]                                       ^
    [javac] C:\projects\logdashboard\LogDashboard\src\main\java\com\roche\research\logdashboard\server\domain\logparser\LogFileUtil.java:65: cannot find symbol
    [javac] symbol  : variable DateUtils
    [javac] location: class com.roche.research.logdashboard.server.domain.logparser.LogFileUtil
    [javac]                     || DateUtils.isSameDay(logFile.getDate(), since)) {
    [javac]                        ^

BUILD FAILED
C:\projects\logdashboard\LogDashboard\warbuilder.xml:31: Compile failed; see the compiler error output for details.

Total time: 7 seconds

So my question is:

Is the Java version from ant the problem?

Or:

Is there an easier way to package the GWT application to a war file, then an ant script? I tried some things, but nether did work.

Community
  • 1
  • 1
SCBoy
  • 545
  • 8
  • 19

1 Answers1

1

Is the Java version from ant the problem?

No.
It looks like you're missing dependencies from the classpath (specifically the Bean Validation API, ICU4j, Apache Commons Lang and the Servlet API).

Is there an easier way to package the GWT application to a war file, then an ant script? I tried some things, but nether did work.

It depends how you build your project. If you're using Ant already, then use Ant to package your WAR; if you're using Maven, then use Maven; if you're using Make, then use Make; if you're using a shell script, then continue with it; etc.
If you don't have a build script and only rely on your IDE, then you have a more severe problem than packaging a WAR. But still, you can do that from within Eclipse (I know it can be done, I don't know how however).

Thomas Broyer
  • 64,353
  • 7
  • 91
  • 164
  • I added the gwt-user.jar, gwt-dev.jar and validation-api-1.0.0.GA.jar into the war/WEB-INF/lib folder and know the compile target works :) thx. – SCBoy Jun 18 '12 at 11:31
  • Er, ouch! **Do not ever put gwt-user or gwt-dev into WEB-INF/lib!** If you're using Apache Commons Lang and ICU4j on the server-side (which you do), then grab their JARs and put them there. And as you're using GWT-RPC, then put gwt-servlet.jar into WEB-INF/lib. – Thomas Broyer Jun 18 '12 at 13:38