Подтвердить что ты не робот

Проблема GWT/Eclipse/Jetty: Jasper не может разрешать библиотеки тегов

Я пытаюсь запустить режим GWT Hosted в Eclipse, à la этот HOWTO. Сервлеты работают нормально, как и мой код GWT, но все мои JSP не работают, потому что с такими ошибками, как:

[WARN] /view/lniExecutiveSummary.htm
org.apache.jasper.JasperException: /WEB-INF/jsp/lni/lniExecutiveSummary.jsp(1,1) The absolute uri: http://java.sun.com/jsp/jstl/fmt cannot be resolved in either web.xml or the jar files deployed with this application
    at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
    at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409)
    [ trimmed ]

Этот webapp отлично работает при развертывании под Tomcat 5x; Я просто не могу заставить его разрешить taglib при запуске в Eclipse. Я новичок в Eclipse, и заставляя его работать со всеми движущимися частями, необходимыми для GWT + Maven, я вытаскиваю свои волосы.

Обновить: я больше не использую Eclipse; Я переключился (обратно!) В Intellij IDEA. Поэтому я не могу честно оценить ответы, которые вы, например, опубликовали. После того, как произойдет какое-то голосование, или кто-то еще сообщит об успехах с одним из этих методов, я приму соответствующий ответ. Спасибо.

4b9b3361

Ответ 1

Вы пытались пометить "jsf-api.jar" как "экспортированный" в своем проекте Java?
(как упоминалось в этот поток)

1.) Перейдите в свойства java-проекта и отметьте "jsf-api.jar" как экспортированный. (project>properties>java build path>order and exports)
2.) Перейдите в расширенные глобальные предпочтения tomcat и добавьте свой проект в путь класса tomcat (windows>preferences>tomcat>advanced>add projects to tomcat classpath)

Затем попробуйте снова запустить webapp под затмением.

Вот статья, описывающая ту же процедуру/настройку, а не JSF, но Хадсон (тем не менее, проблема )

Вы можете четко видеть два шага, о которых я говорил выше:

http://wiki.hudson-ci.org/download/attachments/4161557/override.png

http://wiki.hudson-ci.org/download/attachments/4161557/otherTips.png

Ответ 2

Я чувствую твою боль. Я прошел через ту же боль, пытаясь заставить работать gwt, maven и eclipse.

Мне удалось заставить его работать с maven, используя следующий pom.xml. Таким образом, вы можете использовать mvn gwt:run для запуска в режиме размещения, но, к сожалению, я никогда не мог получить цель mvn mvn gwt:eclipse для создания конфигурации времени запуска запуска eclipse.

Вот соответствующие фрагменты из моего pom.xml. Обратите внимание, что мне было проще установить gwt в отдельном местоположении и указать maven, чтобы использовать это вместо того, чтобы mvn загружать gwt из репо. "Уровень системы" в зависимостях mvn - вот что такое.

  <properties>

      <!-- convenience to define GWT version in one place -->
      <gwt.version>1.7.1</gwt.version>
      <google.webtoolkit.home>${env.GWT_HOME}</google.webtoolkit.home>

      <!--  tell the compiler we can use 1.5 -->
      <maven.compiler.source>1.6</maven.compiler.source>
      <maven.compiler.target>1.6</maven.compiler.target>      

  </properties>

  <dependencies>

      <!--  GWT dependencies (from central repo) -->
    <dependency>
      <groupId>com.google.gwt</groupId>
      <artifactId>gwt-servlet</artifactId>
      <version>${gwt.version}</version>
      <scope>system</scope>
      <systemPath>${env.GWT_HOME}/gwt-servlet.jar</systemPath>
    </dependency>
    <dependency>
      <groupId>com.google.gwt</groupId>
      <artifactId>gwt-user</artifactId>
      <version>${gwt.version}</version>
      <scope>system</scope>
      <systemPath>${env.GWT_HOME}/gwt-user.jar</systemPath>
    </dependency>

    ... other dependencies...
  </dependencies>

  <build>
    <outputDirectory>war/WEB-INF/classes</outputDirectory>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>gwt-maven-plugin</artifactId>
        <version>1.1</version>
        <executions>
          <execution>
            <goals>
              <goal>compile</goal>
              <goal>generateAsync</goal>
              <goal>test</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
            <runTarget>com.gwt.example/Application.html</runTarget>
            <extraJvmArgs>-Xmx512m</extraJvmArgs>
        </configuration>
      </plugin>
      <!--
          If you want to use the target/web.xml file mergewebxml produces,
          tell the war plugin to use it.
          Also, exclude what you want from the final artifact here.
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <webXml>target/web.xml</webXml>
                    <warSourceExcludes>.gwt-tmp/**</warSourceExcludes>
                </configuration>
            </plugin>
            -->

      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>2.0.2</version>
          <configuration>
            <source>${maven.compiler.source}</source>
            <target>${maven.compiler.target}</target>
            <module>com.gwt.example</module>
          </configuration>
      </plugin>
    </plugins>

    ...rest of pom.xml...

Еще один способ, с которым я столкнулся, - использовать eclipse плагин google gwt. Просто используйте мастер для создания нового проекта gwt, убедитесь, что вы можете запустить его из eclipse, а затем изменить с помощью собственного кода.

Ответ 3

Этот webapp отлично работает при развертывании под Tomcat 5x; Я просто не могу заставить его разрешить taglib при запуске в Eclipse. Я новичок в Eclipse, и заставляя его работать со всеми движущимися частями, необходимыми для GWT + Maven, я вытаскиваю свои волосы.

У вас, видимо, есть JSTL JAR файл в Tomcat/lib вместо WEB-INF/lib. Вы можете исправить это, по крайней мере, тремя способами:

  • Переместить/скопировать JAR файлы JSTL в WEB-INF/lib.
  • Переместите/скопируйте JSTL JAR файл в Tomcat/lib вашей машины разработки.
  • Свяжите правильный сервер Tomcat, содержащий JSTL JAR файлы с веб-проектом в Eclipse. Если этого еще не сделано, добавьте сервер Tomcat в представление Servers. Затем в свойствах проекта перейдите в Java Build Path > Libraries > Add Library > Runtime серверa > выберите сервер, о котором идет речь.

Ответ 4

Добавьте файлы Jar в путь класса проекта eclipse. если у вас уже есть этот файл tomcat lib. Этот вариант будет работать для вас. Второй вариант - добавить jar в папку Web-Inf lib, если у вас есть веб-проект eclipse.