Подклассы Java EE LocalStatelessSessionProxyFactoryBean - PullRequest
0 голосов
/ 06 февраля 2012

Я пытаюсь создать подкласс LocalStatelessSessionProxyFactoryBean для переопределения метода invoke.

Есть клиентская сторона, обращающаяся к сервисам через механизм http invoker, и мне нужно развернуть все исключения EJBException, потому что клиентне имеет класса.Я также безуспешно пытался использовать Spring AOP.

У меня есть ограничения на то, что все исключения, возникающие у клиента, являются средами выполнения, и я не могу аннотировать все исключения с помощью @ApplicationException.(если бы эта аннотация была унаследована, это было бы хорошим решением для меня)

Мой весенний конфиг выглядит так:

<bean name="/TestService" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter" >
   <property name="service" ref="testServiceEJB" />
   <property name="serviceInterface" value="package.shared.services.ITestService" />
</bean> 

<bean name="testServiceEJB" class="package.framework.server.spring.LocalStatelessSessionProxyFactoryBean" >
    <property name="jndiName" value="framework/TestServiceImpl/local"/>
    <property name="businessInterface" value="package.shared.services.ITestService"/>
</bean>  

Моя проблема в том, что при запуске jboss он говорит мне

[org.springframework.web.context.ContextLoader] Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name '/TestService' defined in ServletContext resource [/WEB-INF/service-servlet.xml]:

         Invocation of init method failed; nested exception is java.lang.IllegalArgumentException:
         Service interface [package.framework.shared.services.ITestService] needs to be implemented by service [package.framework.server.spring.LocalStatelessSessionProxyFactoryBean@133c8e5] of class [package.framework.server.spring.LocalStatelessSessionProxyFactoryBean]

У меня нет этой ошибки при использовании тега jee:local-slsb или объявлении bean-компонента с классом LocalStatelessSessionProxyFactoryBean.

При отладке проксирование не выполняется там, где это должно происходить,и проверка не проходит:

  at org.springframework.remoting.support.RemoteExporter.checkServiceInterface(RemoteExporter.java:136)
        at org.springframework.remoting.support.RemoteExporter.getProxyForService(RemoteExporter.java:155)
        at org.springframework.remoting.rmi.RemoteInvocationSerializingExporter.prepare(RemoteInvocationSerializingExporter.java:88)
        at org.springframework.remoting.rmi.RemoteInvocationSerializingExporter.afterPropertiesSet(RemoteInvocationSerializingExporter.java:81)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1469)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1409)

Спасибо за помощь

1 Ответ

0 голосов
/ 08 февраля 2012

Я вложил в класс пружины HttpInvokerServiceExporter, чтобы развернуть исключения EJB в handleRequest ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...