У меня есть проект с EJB, реализующим JWS Webservice, например:
@Stateless
@Remote(WebServiceTest.class)
@WebService(
serviceName="TestService",
name="TestName"
)
public class WebServiceTestImpl implements WebServiceTest {
@Override
@WebMethod(operationName="hello")
public String hello() {
return "Hello World!";
}
}
Я отлично развернул и протестировал это в WebLogic 10.3, используя простой проект EAR.Теперь мне нужно использовать Hibernate в моем проекте, поэтому из предыдущего опыта я знаю, что мне нужно использовать Antrl из Hibernate, а не из контейнера, поэтому я создаю файл weblogic-application.xml в проекте EAR:
<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-application ...>
<wls:prefer-application-packages>
<wls:package-name>antlr.*</wls:package-name>
</wls:prefer-application-packages>
</wls:weblogic-application>
Теперь, когда я развертываю EAR, я получаю эту ошибку:
Unable to deploy EJB: WebServiceTestImpl from test-1.0.0-SNAPSHOT.jar:
***** ASSERTION FAILED *****
at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:467)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:507)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:41)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:149)
Truncated. see log file for complete stacktrace
Caused By: java.lang.ClassNotFoundException: test.WebServiceTestImpl_zd33dy_WSOImpl
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:280)
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:253)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:177)
Truncated. see log file for complete stacktrace
Как я могу решить эту проблему?Если я не добавлю Antlr в wls: предпочитаемое приложение-пакеты, Hibernate не будет работать, и если я его укажу, я не смогу развернуть веб-сервис ...