2016-12-20 16 views
-1

Я реализовал общий модуль, который является пакетами как война, скажем, common_module.war. Мне нужно использовать этот common_module.war в другом тестовом приложении. В моем локальном затмении, когда я включаю common_module.war в зависимость от тестового приложения, я могу получить доступ ко всем java-классам common_module.war jsps & в тестовом приложении. Все идет нормально.Maven - зависимость war unpack

Теперь проблема заключается в том, чтобы развернуть его на сервере. Я загрузил common_module.war в папку моей компании artifactory. И включил этот путь в пути репозитория. Теперь тестовое приложение не может получить доступ к jsps из common_module.war.

Что я здесь делаю неправильно?

ошибка - я включаю jsp общего модуля в тестовом приложении. Там сам я вижу ошибку красного знака jsp не найден.

<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>test_group_id</groupId> 
    <artifactId>test_artifact</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>war</packaging> 
    <name>test</name> 
    <description>test</description> 
<repositories> 
     <repository> 
      <id>central</id> 
      <name>Maven Repository Switchboard</name> 
      <layout>default</layout> 
      <url>http://repo1.maven.org/maven2</url> 
      <snapshots> 
       <enabled>false</enabled> 
      </snapshots> 
     </repository> 
     <repository> 
      <id>my_company_name</id> 
      <url>path_to_my_company_artifactory</url> 
      <snapshots> 
       <enabled>true</enabled> 
      </snapshots> 
      <releases> 
       <enabled>true</enabled> 
      </releases> 
     </repository> 
    </repositories> 
    <dependencies> 
    <dependency> 
      <groupId>common_module_group_id</groupId> 
       <artifactId>common_module_artifact</artifactId> 
      <version>0.0.1-SNAPSHOT</version> 
      <type>war</type> 
     <scope>runtime</scope> 
     </dependency> 
     </dependencies> 
    <plugins> 

      <plugin> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.3</version> 
       <configuration> 
        <outputDirectory>${project.build.directory}/../package/dependencies/jbossews/webapps</outputDirectory> 
        <warSourceDirectory>/src/main/webapp</warSourceDirectory> 
         <webXml>src\main\webapp\WEB-INF\web.xml</webXml> 
        <attachClasses>true</attachClasses> 
       <classesClassifier>classes</classesClassifier> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <version>2.4</version> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>single</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <appendAssemblyId>false</appendAssemblyId> 
        <descriptors> 
         <descriptor>assembly.xml</descriptor> 
        </descriptors> 
       </configuration> 
      </plugin> 
      <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
      </configuration> 
     </plugin> 
     </plugins> 
</project> 
+0

Установлен ли артефакт правильно? Можете ли вы подтвердить это в журнале сервера? –

+0

Да артефакт развернут отлично. – user1457957

+0

опубликуйте информацию об ошибках и ошибках. –

ответ

0

Мне кажется, что вы пытаетесь реализовать web-fragment. Это JAR-файл (не WAR-файл), который может быть включен в каталог WEB-INF/lib веб-приложения. Он может содержать те же компоненты, что и файл WAR, включая JSP; он просто упакован по-разному.

Файл jar должен содержать файл META-INF/web-fragment.xml, а JSP должны быть упакованы в каталог META-INF/resources. Контейнер сервлета будет обрабатывать JSP-файлы в этом каталоге, как если бы они находились в корне вашего файла WAR. web-fragment.xml по существу является подмножеством обычного файла web.xml.

Это функция Servlet 3.0+.

См. §8.2 и §10.5 Спецификации сервлетов Java 3.0/3.1.

+0

Могу ли я не достичь этого с помощью функции наложения maven? – user1457957

+0

В основном я хочу получить доступ к jsps и java классам общей moudle в проекте Test. В моей локальной функции наложения работает и имеет доступ. но когда я загружаю общий файл войны модуля на сервер, только проблема – user1457957

0

Функция военного наложения помогла мне решить эту проблему. Сейчас он работает нормально.

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

  • Нет связанных вопросов^_^