Чтобы получить рабочий файл WAR с WireMock 2.19.0, необходимо выполнить следующие шаги:
Issue (1) :
Элемент не разрешен: описание @ http://xmlns.jcp.org/xml/ns/javaee в элементе прослушивания @ http://xmlns.jcp.org/xml/ns/javaee
Решение: удалить тег description
из раздела listener
файла web.xml
.
Issue (2) :
java.lang.NullPointerException на com.github.tomakehurst.wiremock.common.ServletContextFileSource.getRootFile (ServletContextFileSource.java:35)
Решение: 1:Консоль администрирования Weblogic> Домен> Веб-приложения> установите флажок «Включен реальный путь к архиву»
Решение 2: добавьте файл weblogic.xml
в каталог WEB_INF
, содержимое:
<weblogic-web-app>
<container-descriptor>
<show-archived-real-path-enabled>true</show-archived-real-path-enabled>
</container-descriptor>
</weblogic-web-app>
Проблема (3) :
Конфликты путей к классам
Добавление prefer-application-packages
в WEB_INF/weblogic.xml
файл:
<prefer-application-packages>
<package-name>com.fasterxml.jackson.*</package-name>
<package-name>com.google.common.*</package-name>
<package-name>com.google.thirdparty.*</package-name>
<package-name>net.minidev.json.*</package-name>
</prefer-application-packages>
Проблема (4):
Изменить URL-адрес сопоставления WireMockHandlerDispatchingServlet
:
<servlet>
<servlet-name>wiremock-mock-service-handler-servlet</servlet-name>
...
<init-param>
<param-name>mappedUnder</param-name>
<param-value>/mapping</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>wiremock-mock-service-handler-servlet</servlet-name>
<url-pattern>/mapping/*</url-pattern>
</servlet-mapping>
Issue (5) :
Исключить зависимости, связанные с Jetty:
<dependency>
<groupId>com.github.tomakehurst</groupId>
<artifactId>wiremock</artifactId>
<version>2.19.0</version>
<exclusions>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlets</artifactId>
</exclusion>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId>
</exclusion>
</exclusions>
</dependency>
+ 1
Удалить службу администратора WireMock.
Удалить сервлет wiremock-admin-handler-servlet
и его конфигурацию servlet-mapping
из файла WEB_INF/weblogic.xml
.
С помощью описанных выше шагов вы можете создать WAR-файл, который можно развернуть на сервере Weblogic 12.2.x.