Glassfish Eclipse Link JPA -Paket nach FunktionJava

Java-Forum
Anonymous
 Glassfish Eclipse Link JPA -Paket nach Funktion

Post by Anonymous »

Ich habe eine J2EE -App ausgeführt, aber ich habe beschlossen, die Codeorganisation in ein Paket nach Feature -Stil anstelle des Pakets für Ebenenstil zu ändern, das ich jetzt verwende Dieses Schema: < /p>
  • com.app.domain

    Customer.java
    < /ul>
    < /li>
  • com.app.dao

    Customerdao.java
  • CustomerDaOImpl.java < /li>
    < /ul>
    < /li>
    com.app.service

    < li> customerservice.java < /li>
    customerServiceImpl.java
    < /ul>
    < /li>
  • com.app. Web

    CustomerHandler.java
    < /ul>
    < /li>
    < /ul>
    Ich möchte es an: < /p>
  • Com.app.Customer

    Customer.java verschieben < /li>
    customerdao.java
  • customerdaoimpl.java
  • customerservice.java
  • customerserviceImpl.java
  • customerHandler.java



Wenn ich Tests auf dem neuen Schema ausführe, funktioniert alles gut, aber wenn ich versuche, den Customerservice über den CustomerHandler zu verwenden Kein EntityManager mit der tatsächlichen Transaktion für den aktuellen Thread < /p>

Kann 'persist' aufrufen < /li>
< /ul>
nicht zuverlässig verarbeiten < /blockquote>
Ich habe versucht, meine Klassen nacheinander in das neue Paket zu gruppieren, um zu sehen, welches das Problem ist, und es ist der CustomerserviceImpl.java, wenn ich diese Klasse außerhalb des Com.apps bewege. Kundenpaket My App funktioniert einwandfrei, die Datei applicationContext.xml ist so konfiguriert, dass das Paket com.app.customer, das CustomerDaoImpl und das CustomerserviceImpl, @Transactional Annotations, ich habe gelesen, dass entweder der DAO oder der Service Transaktionsübertragung sein sollten, aber nicht beides, also also, also, also, also so. Ich habe versucht, diese Annotation aus beiden Klasse zu entfernen, aber ich erhalte immer noch den gleichen Fehler. < /P>
Dies ist die vollständige Stapelspur:

Code: Select all

Warning: StandardWrapperValve[dispatcher]: Servlet.service() for servlet dispatcher threw exception
javax.persistence.TransactionRequiredException:  No EntityManager with actual transaction available for current thread -  c a n n o t   r e l i a b l y   p r o c e s s   ' p e r s i s t '   c a l l < b r   / >                 a t   o r g . s p r i n g f r a m e w o r k . o r m . j p a . S h a r e d E n t i t y M a n a g e r C r e a t o r $ S h a r e d E n t i t y M a n a g e r I n v o c a t i o n H a n d l e r . i n v o k e ( S h a r e d E n t i t y M a n a g e r C r e a t o r . j a v a : 2 7 8 ) < b r   / >                 a t   c o m . s u n . p r o x y . $ P r o x y 2 3 4 . m e r g e ( U n k n o w n Source)
at com.app.customer.customerDaoImpl.merge(customerDaoImpl.java:49)
at com.app.customer.customerServiceImpl.store(customerServiceImpl.java:69)
at com.app.customer.customerHandler.store(customerHandler.java:39)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:817)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:731)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:968)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:870)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:844)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:416)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:283)
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:206)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:180)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:283)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:132)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:111)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:536)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571)
at java.lang.Thread.run(Thread.java:745)
< /code>
Was mache ich falsch? Ist es möglich,  eine App mit dem Paket nach Funktionsstil mit EclipSelink JPA zu erstellen?  bearbeiten: < /p>
Dies ist die Datei applicationContext.xml mit dem Originalverpackungsstil: < /p>










< /code>
Für den neuen Verpackungsstil habe ich dies geändert: < /p>


< /code>
dazu: < /p>

< /code>
Dann erhalte ich den oben genannten Fehler, aber wenn ich den CustomerserviceImpl.class außerhalb des Pakets com.app.customer an seinen ursprünglichen Ort verschiebe: com.app.service und ändern den ApplicationContext. xml zu: < /p>


< /code>
Meine App funktioniert.


org.eclipse.persistence.jpa.PersistenceProvider
jdbc/appDB
false






Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post