2015-12-07 10 views
0

Я разработал специальный облачный коннектор для Mule. Я разработал его в IntelliJ, используя Maven. Я сгенерировал код из стороннего WSDL с использованием Axis2 и XMLBeans. Я разработал тестовые примеры, которые передают и показывают ожидаемые результаты после взаимодействия с веб-службой. «mvn clean package» успешно проходит все тесты и строит сайт.Пользовательский соединитель Cloud Mule с клиентом Axis2

Проблема, с которой я сталкиваюсь, заключается в ее использовании в любой точке, создающей проект Mule. Я добавил файлы Axis2 1.6.3 в корневой каталог пути jvm, созданный Anypoint при запуске приложения. Когда я отправить запрос, который взаимодействует с моим разъемом, я получаю следующее сообщение об ошибке:


Message : null (java.lang.ExceptionInInitializerError). Message payload is of type: String Type : org.mule.api.MessagingException Code : MULE_ERROR--2 JavaDoc : http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MessagingException.html Payload : Testing ******************************************************************************** Exception stack is: 1. null (java.lang.NullPointerException) org.apache.axiom.locator.DefaultOMMetaFactoryLocator:72 (null) 2. null (java.lang.ExceptionInInitializerError) org.apache.axis2.description.AxisDescription:72 (null) 3. null (java.lang.ExceptionInInitializerError). Message payload is of type: String (org.mule.api.MessagingException)
org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor:32 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MessagingException.html) ******************************************************************************** Root Exception stack trace: java.lang.NullPointerException at org.apache.axiom.locator.DefaultOMMetaFactoryLocator.(DefaultOMMetaFactoryLocator.java:72)

Глядя на DefaultOMMetaFactoryLocator, для аксиомы-api1.2.14, я вижу следующее в строке 72:

Enumeration e = classLoader.getResources(ImplementationFactory.DESCRIPTOR_RESOURCE);

Статическая ссылка - файл axiom.xml. Я попытался добавить файл вручную, но продолжаю получать ошибку с нулевым указателем. Этот код используется сгенерированным кодом для создания соединения через клиента, но напрямую не влияет на мой код. Есть ли что-то, чего я не вижу, имея возможность использовать Axis2 в Cloud Connector в Mule ESB? Почему он будет работать в тесте maven, но не в какой-то точке?

Дополнительная информация:

Axis2 1.6.3 Аксиома * 1.2.14 Mule ESB 3.7

ответ

0

Ошибка указывает на то, что Аксиома загружается загрузчик классов в виртуальной машины Java. Я сомневаюсь, что это рекомендуемый способ развернуть вещи в Anypoint.

+0

Вы правы, я намеренно загрузил его в загрузчик класса начальной загрузки. Mule ESB 3.7 ссылается на более старую версию Axiom. Если я не загружаю его в bootstrap, я получаю метод не найденной ошибки из-за более старой версии Axiom. – MonomiDev

+0

Я думаю, что правильный способ сделать это - добавить JAR в $ MULE_HOME/lib/user. –

+0

Если я переключусь на то, как вы упомянули, я получаю следующее (по крайней мере, я думаю, что все правильно, я добавил Axis2 1.6.3 для использования библиотек в конфигурации запуска): Сообщение: org.apache.axiom. om.OMAbstractFactory.getMetaFactory() Lorg/Apache/аксиомой/ом/OMMetaFactory; (Java.lang.NoSuchMethodError). Полезная нагрузка сообщения имеет тип: String Тип: org.mule.api.MessagingException Код: MULE_ERROR - 2 JavaDoc: – MonomiDev