freemarker+webwork+ebj2+Hibernate3開發物件傳遞問題
專案中用freemarker+webwork+ejb2.0+Hibernate3的開發架構。
主要流程是透過在webwork中呼叫ejb的SessionBean(remote方式).然後在ejb中呼叫dao操作hibernate.相當於用hibernate代替CMP.在開發過程中有個問題一直困擾我,希望各位給些意見。
ejb佈署在weblogic9,ejb啟動時就初始化好了所有東西,主要是一些通用的jar包和業務實現,包括hibernate的配置檔案。web層(freemarker+webwork)是在tomcat5中開發和佈署。
我是這樣操作的,先在webwork的action中透過id取出要修改的物件dbProduct,然後把修改後的product(介面修改的)一一付值給dbProduct,最後呼叫sessionbean的modifyProduct(Product dbProduct)方法時經常會丟擲一個這樣原因的異常。
java.rmi.MarshalException: CORBA MARSHAL 0 No; nested exception is:
org.omg.CORBA.MARSHAL: vmcid: 0x0 minor code: 0 completed: No
at com.sun.corba.se.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:197)
at javax.rmi.CORBA.Util.mapSystemException(Util.java:67)
at com.dmx.cbill.spi._Product_Stub.modifyPackageProduct(Unknown Source)
at com.dmx.cbill.backoffice.product.ProductManagerAction.modifyPackage(ProductManagerAction.java:1000)
at com.dmx.cbill.backoffice.product.ProductManagerAction.execute(ProductManagerAction.java:211)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
.....中間一大堆就刪了,不是主要的資訊。
Caused by: org.omg.CORBA.MARSHAL: vmcid: 0x0 minor code: 0 completed: No
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
at java.lang.Class.newInstance0(Class.java:350)
at java.lang.Class.newInstance(Class.java:303)
at com.sun.corba.se.impl.protocol.giopmsgheaders.MessageBase.getSystemException(MessageBase.java:897)
at com.sun.corba.se.impl.protocol.giopmsgheaders.ReplyMessage_1_2.getSystemException(ReplyMessage_1_2.java:99)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.getSystemExceptionReply(CorbaMessageMediatorImpl.java:572)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.processResponse(CorbaClientRequestDispatcherImpl.java:430)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.marshalingComplete(CorbaClientRequestDispatcherImpl.java:326)
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:129)
at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:457)
... 73 more
2007-05-15 16:17:14 INFO EJBInitInterceptor:70 - EJBHome介面初始化狀態:true
2007-05-15 16:17:14 INFO LoadResourceInterceptor:37 - LoadResourceInterceptor is beginning
2007-05-15 16:17:14 INFO LoadResourceInterceptor:58 - LoadResourceInterceptor is ended
我在ejb的modify...方法的第一行log資訊,但weblogic沒有列印任何東西。
後來在一位同事的幫助下,改了改。異常就不出現了。還是在action中呼叫sessionbean的modify方法,但這回直接傳product(介面修改的)過去,然後在ejb的方法中再透過id取出要修改的物件dbProduct,然後把修改後的product一一付值給dbProduct,最後修改.
是不是因為兩個容器(一個weblogic9,一個tomcat5.)的原因?也就是說tomcat透過ejb取出weblogic中hibernate session關聯的物件再傳回weblogic修改就不行了?
主要流程是透過在webwork中呼叫ejb的SessionBean(remote方式).然後在ejb中呼叫dao操作hibernate.相當於用hibernate代替CMP.在開發過程中有個問題一直困擾我,希望各位給些意見。
ejb佈署在weblogic9,ejb啟動時就初始化好了所有東西,主要是一些通用的jar包和業務實現,包括hibernate的配置檔案。web層(freemarker+webwork)是在tomcat5中開發和佈署。
我是這樣操作的,先在webwork的action中透過id取出要修改的物件dbProduct,然後把修改後的product(介面修改的)一一付值給dbProduct,最後呼叫sessionbean的modifyProduct(Product dbProduct)方法時經常會丟擲一個這樣原因的異常。
java.rmi.MarshalException: CORBA MARSHAL 0 No; nested exception is:
org.omg.CORBA.MARSHAL: vmcid: 0x0 minor code: 0 completed: No
at com.sun.corba.se.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:197)
at javax.rmi.CORBA.Util.mapSystemException(Util.java:67)
at com.dmx.cbill.spi._Product_Stub.modifyPackageProduct(Unknown Source)
at com.dmx.cbill.backoffice.product.ProductManagerAction.modifyPackage(ProductManagerAction.java:1000)
at com.dmx.cbill.backoffice.product.ProductManagerAction.execute(ProductManagerAction.java:211)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
.....中間一大堆就刪了,不是主要的資訊。
Caused by: org.omg.CORBA.MARSHAL: vmcid: 0x0 minor code: 0 completed: No
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
at java.lang.Class.newInstance0(Class.java:350)
at java.lang.Class.newInstance(Class.java:303)
at com.sun.corba.se.impl.protocol.giopmsgheaders.MessageBase.getSystemException(MessageBase.java:897)
at com.sun.corba.se.impl.protocol.giopmsgheaders.ReplyMessage_1_2.getSystemException(ReplyMessage_1_2.java:99)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.getSystemExceptionReply(CorbaMessageMediatorImpl.java:572)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.processResponse(CorbaClientRequestDispatcherImpl.java:430)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.marshalingComplete(CorbaClientRequestDispatcherImpl.java:326)
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:129)
at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:457)
... 73 more
2007-05-15 16:17:14 INFO EJBInitInterceptor:70 - EJBHome介面初始化狀態:true
2007-05-15 16:17:14 INFO LoadResourceInterceptor:37 - LoadResourceInterceptor is beginning
2007-05-15 16:17:14 INFO LoadResourceInterceptor:58 - LoadResourceInterceptor is ended
我在ejb的modify...方法的第一行log資訊,但weblogic沒有列印任何東西。
後來在一位同事的幫助下,改了改。異常就不出現了。還是在action中呼叫sessionbean的modify方法,但這回直接傳product(介面修改的)過去,然後在ejb的方法中再透過id取出要修改的物件dbProduct,然後把修改後的product一一付值給dbProduct,最後修改.
是不是因為兩個容器(一個weblogic9,一個tomcat5.)的原因?也就是說tomcat透過ejb取出weblogic中hibernate session關聯的物件再傳回weblogic修改就不行了?
相關文章
- 使用Intent傳遞物件Intent物件
- String型別函式傳遞問題型別函式
- php傳遞json給jquery的問題PHPJSONjQuery
- Asp-Net-Core開發筆記:介面返回json物件出現套娃遞迴問題筆記JSON物件遞迴
- PHP中物件的引用傳遞PHP物件
- Android開發 - Serializable 介面對物件進行“打包”傳遞和接收後“解包”解析Android物件
- 二維陣列作為引數傳遞問題陣列
- Python-單繼承中值傳遞的問題Python繼承
- Mybatis引數傳遞&註解開發MyBatis
- 解決CORS跨域不能傳遞cookies的問題CORS跨域Cookie
- 給vue元件傳遞物件或是陣列Vue元件物件陣列
- 遞迴問題遞迴
- 面試官問:Go 中的引數傳遞是值傳遞還是引用傳遞?面試Go
- PHP 物件導向 (四)類物件賦值為引用傳遞PHP物件賦值
- ajax從JSP傳遞物件陣列到後臺JS物件陣列
- (求教)關於js函式按值、引用傳遞的問題JS函式
- feign之間傳遞oauth2-token的問題和解決OAuth
- Android開發-掌握ConstraintLayout(一)傳統佈局的問題AndroidAI
- Android開發 - 掌握ConstraintLayout(一)傳統佈局的問題AndroidAI
- 2020-10-10: 傳統JDBC開發存在的問題?JDBC
- python中的引用傳遞,可變物件,不可變物件,list注意點Python物件
- 188W+程式設計師關注過的問題:Java到底是值傳遞還是引用傳遞?程式設計師Java
- 將函式作為引數傳遞解決非同步問題函式非同步
- String和StringBuffer型別資料進行引數傳遞問題型別
- 遞迴-*全排列問題遞迴
- 遞迴路徑問題遞迴
- 值傳遞和引用傳遞
- [開發問題]React-native問題集React
- C語言函式傳遞指標引數的問題詳解C語言函式指標
- 傳參問題
- hdu2048遞迴問題遞迴
- hdu2049遞迴問題遞迴
- 樹遞迴問題的求解遞迴
- 【組合數學】遞推方程 ( 有重根遞推方程求解問題 | 問題提出 )
- 解決SpringBoot在後臺接收前臺傳遞物件方式Spring Boot物件
- JavaScript的值傳遞和引用傳遞JavaScript
- 快速搞懂值傳遞與引用傳遞
- Java的值傳遞和引用傳遞Java
- 類物件作為實參傳入函式,函式是複製物件還是直接使用物件的問題物件函式