2015-10-01 3 views
1

Я использую Maven и JBehave для теста интеграции. Я также использую плагин tomcat7 maven, который запускается до запуска интеграции, чтобы я мог писать jBehave истории, которые попали в мой api.Maven + tomcat7-plugin + JBehave + WireMock

Теперь я пытаюсь включить Wiremock, потому что у меня есть внешние HTTP-вызовы, которые я хотел бы высмеять, wiremock кажется идеальным решением.

Я бы предпочел не писать какой-либо макет-заглушку в java, и я видел в документе Wiremock, что есть автономный режим, в котором вы просто помещаете свои файлы и сопоставляете их в папку, в которой я проводю макет, когда это необходимо.

Я включил это в моей pom.xml

<dependency> 
     <groupId>com.github.tomakehurst</groupId> 
     <artifactId>wiremock</artifactId> 
     <version>1.57</version> 
     <classifier>standalone</classifier> 
     <scope>test</scope> 
     <exclusions> 
     <exclusion> 
      <groupId>*</groupId> 
      <artifactId>*</artifactId> 
     </exclusion> 
     </exclusions> 
    </dependency> 

, но когда я запускаю тест интеграции я получаю это

SEVERE: A child container failed during start 
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]] 

Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/catalina/loader/WebappClassLoader) previously initiated loading for a different type with name "javax/servlet/ServletContext" 

встроенный tomcat7 не запускается. Может ли кто-нибудь помочь мне настроить проводку в автономном режиме с помощью maven?

+0

Ошибка java.lang.LinkageError возникает в ситуации, когда есть два загрузчика классов, связанных с загрузкой класса. Я столкнулся с этим вопросом весной – soorapadman

ответ

1

Могу я предложить попробовать версию 2.0.4-бета?

С одной стороны, у wiremock-standalone есть свой собственный POM, который позволяет избежать явного исключения транзитивных зависимостей. Он также использует новейший API Servlet, уменьшая риск столкновения с вашим контейнером.

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