![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Jackson |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 28.8.2007 Репутация: нет Всего: нет |
Привет всем.
Я только начал изучать J2ee, и многое пока не получается. Я создаю CMP Bean для одной таблицы БД (Java Db). Использую NetBeans 6.0 (J2EE 1.4) и GlassFish V2 (Sun Java System Application Server 9.1 (build b58g-fcs)). Ничего в него не добавляю, но как только пытаюсь вызвать какой-нибудь метод поиска (я вызываю из метода session bean), например, findById, получаю такой exception: javax.transaction.TransactionRolledbackException: CORBA TRANSACTION_ROLLEDBACK 9998 Maybe; nested exception is: org.omg.CORBA.TRANSACTION_ROLLEDBACK: ----------BEGIN server-side stack trace---------- org.omg.CORBA.TRANSACTION_ROLLEDBACK: vmcid: 0x2000 minor code: 1806 completed: Maybe at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.java:231) at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1386) at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316) at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:210) at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:120) at $Proxy51.Do(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154) at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687) at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227) at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846) at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706) at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088) at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223) at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806) at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563) at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567) at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555) Caused by: javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean; nested exception is: com.sun.jdo.api.persistence.support.JDODataStoreException: JDO76400: Got a JDBC SQLException while executing the SQL statement: SQL statement<select t0."ID", t0."AUTHOR", t0."TITLE" from "COLLECTIONBEAN" t0 where t0."ID" = CAST (? AS INTEGER)> with input values:java.lang.Integer:5. Please examine the SQLException for more information. NestedException: java.sql.SQLException: Таблица/просмотр 'COLLECTIONBEAN' не существует. at com.sun.ejb.containers.BaseContainer.checkExceptionClientTx(BaseContainer.java:3728) at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3576) at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1354) at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316) at com.sun.ejb.containers.EJBLocalHomeInvocationHandler.invoke(EJBLocalHomeInvocationHandler.java:251) at $Proxy52.findById(Unknown Source) at session11.Session11Bean.Do(Session11Bean.java:76) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1067) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:176) at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2895) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3986) at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:203) ... 17 more ----------END server-side stack trace---------- vmcid: 0x2000 minor code: 1806 completed: Maybe at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:289) at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:205) at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152) at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225) at session11._Session11Remote_DynamicStub.Do(session11/_Session11Remote_DynamicStub.java) at myenterprise11.Main.main(Main.java:31) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.sun.enterprise.util.Utility.invokeApplicationMain(Utility.java:266) at com.sun.enterprise.appclient.MainWithModuleSupport.<init>(MainWithModuleSupport.java:417) at com.sun.enterprise.appclient.MainWithModuleSupport.<init>(MainWithModuleSupport.java:259) at com.sun.enterprise.appclient.Main.main(Main.java:200) Caused by: org.omg.CORBA.TRANSACTION_ROLLEDBACK: ----------BEGIN server-side stack trace---------- org.omg.CORBA.TRANSACTION_ROLLEDBACK: vmcid: 0x2000 minor code: 1806 completed: Maybe at com.sun.enterprise.iiop.POAProtocolMgr.mapException(POAProtocolMgr.java:231) at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1386) at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316) at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:210) at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:120) at $Proxy51.Do(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.sun.corba.ee.impl.presentation.rmi.ReflectiveTie._invoke(ReflectiveTie.java:154) at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatchToServant(CorbaServerRequestDispatcherImpl.java:687) at com.sun.corba.ee.impl.protocol.CorbaServerRequestDispatcherImpl.dispatch(CorbaServerRequestDispatcherImpl.java:227) at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequestRequest(CorbaMessageMediatorImpl.java:1846) at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:1706) at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleInput(CorbaMessageMediatorImpl.java:1088) at com.sun.corba.ee.impl.protocol.giopmsgheaders.RequestMessage_1_2.callback(RequestMessage_1_2.java:223) at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.handleRequest(CorbaMessageMediatorImpl.java:806) at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.dispatch(CorbaMessageMediatorImpl.java:563) at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.doWork(CorbaMessageMediatorImpl.java:2567) at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555) Caused by: javax.ejb.TransactionRolledbackLocalException: Exception thrown from bean; nested exception is: com.sun.jdo.api.persistence.support.JDODataStoreException: JDO76400: Got a JDBC SQLException while executing the SQL statement: SQL statement<select t0."ID", t0."AUTHOR", t0."TITLE" from "COLLECTIONBEAN" t0 where t0."ID" = CAST (? AS INTEGER)> with input values:java.lang.Integer:5. Please examine the SQLException for more information. NestedException: java.sql.SQLException: Таблица/просмотр 'COLLECTIONBEAN' не существует. at com.sun.ejb.containers.BaseContainer.checkExceptionClientTx(BaseContainer.java:3728) at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:3576) at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1354) at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1316) at com.sun.ejb.containers.EJBLocalHomeInvocationHandler.invoke(EJBLocalHomeInvocationHandler.java:251) at $Proxy52.findById(Unknown Source) at session11.Session11Bean.Do(Session11Bean.java:76) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1067) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:176) at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2895) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:3986) at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:203) ... 17 more ----------END server-side stack trace---------- vmcid: 0x2000 minor code: 1806 completed: Maybe 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 com.sun.corba.ee.impl.protocol.giopmsgheaders.MessageBase.getSystemException(MessageBase.java:913) at com.sun.corba.ee.impl.protocol.giopmsgheaders.ReplyMessage_1_2.getSystemException(ReplyMessage_1_2.java:131) at com.sun.corba.ee.impl.protocol.CorbaMessageMediatorImpl.getSystemExceptionReply(CorbaMessageMediatorImpl.java:685) at com.sun.corba.ee.impl.protocol.CorbaClientRequestDispatcherImpl.processResponse(CorbaClientRequestDispatcherImpl.java:472) at com.sun.corba.ee.impl.protocol.CorbaClientRequestDispatcherImpl.marshalingComplete(CorbaClientRequestDispatcherImpl.java:363) at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.invoke(CorbaClientDelegateImpl.java:219) at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:192) ... 12 more Как я понял, общий смысл - в SQL запросе не может найти таблицу COLLECTIONBEAN. Да, ее действительно нет, у меня есть таблица COLLECTION. Я посмотрел по xml - файлам, все поля и таблица вроде замапплены верно. Может, кто-нибудь знает, в чем дело. Буду очень благодарен любой помощи. |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 8 Всего: 118 |
||||
|
||||
| Jackson |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 28.8.2007 Репутация: нет Всего: нет |
sun-cmp-mappings.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sun-cmp-mappings PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 8.1 OR Mapping//EN" "http://www.sun.com/software/appserver/dtds/sun-cmp-mapping_1_2.dtd"> <sun-cmp-mappings> <sun-cmp-mapping> <schema>ADMIN_MyEnterprise11-ejb</schema> <entity-mapping> <ejb-name>CollectionBean</ejb-name> <table-name>COLLECTION</table-name> <cmp-field-mapping> <field-name>id</field-name> <column-name>COLLECTION.ID</column-name> <fetched-with> <default/> </fetched-with> </cmp-field-mapping> <cmp-field-mapping> <field-name>author</field-name> <column-name>COLLECTION.AUTHOR</column-name> <fetched-with> <default/> </fetched-with> </cmp-field-mapping> <cmp-field-mapping> <field-name>title</field-name> <column-name>COLLECTION.TITLE</column-name> <fetched-with> <default/> </fetched-with> </cmp-field-mapping> </entity-mapping> </sun-cmp-mapping> </sun-cmp-mappings> ejb-jar.xml <?xml version="1.0" encoding="UTF-8"?> <ejb-jar version="2.1" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_...p;quot;> <enterprise-beans> <session> <display-name>Session11SB</display-name> <ejb-name>Session11Bean</ejb-name> <home>session11.Session11RemoteHome</home> <remote>session11.Session11Remote</remote> <ejb-class>session11.Session11Bean</ejb-class> <session-type>Stateless</session-type> <transaction-type>Container</transaction-type> <ejb-local-ref> <ejb-ref-name>CollectionBean</ejb-ref-name> <ejb-ref-type>Entity</ejb-ref-type> <local-home>cmpb.CollectionLocalHome</local-home> <local>cmpb.CollectionLocal</local> <ejb-link>CollectionBean</ejb-link> </ejb-local-ref> </session> <entity> <description>jdbc:derby://localhost:1527/DVDCollection [admin on ADMIN]</description> <display-name>CollectionEB</display-name> <ejb-name>CollectionBean</ejb-name> <local-home>cmpb.CollectionLocalHome</local-home> <local>cmpb.CollectionLocal</local> <ejb-class>cmpb.CollectionBean</ejb-class> <persistence-type>Container</persistence-type> <prim-key-class>java.lang.Integer</prim-key-class> <reentrant>false</reentrant> <abstract-schema-name>Collection</abstract-schema-name> <cmp-field> <field-name>id</field-name> </cmp-field> <cmp-field> <field-name>author</field-name> </cmp-field> <cmp-field> <field-name>title</field-name> </cmp-field> <primkey-field>id</primkey-field> <query> <query-method> <method-name>findById</method-name> <method-params> <method-param>java.lang.Integer</method-param> </method-params> </query-method> <ejb-ql>SELECT OBJECT© FROM Collection AS c WHERE c.id = ?1</ejb-ql> </query> <query> <query-method> <method-name>findByAuthor</method-name> <method-params> <method-param>java.lang.String</method-param> </method-params> </query-method> <ejb-ql>SELECT OBJECT© FROM Collection AS c WHERE c.author = ?1</ejb-ql> </query> <query> <query-method> <method-name>findByTitle</method-name> <method-params> <method-param>java.lang.String</method-param> </method-params> </query-method> <ejb-ql>SELECT OBJECT© FROM Collection AS c WHERE c.title = ?1</ejb-ql> </query> </entity> </enterprise-beans> <assembly-descriptor> <container-transaction> <method> <ejb-name>Session11Bean</ejb-name> <method-name>*</method-name> </method> <trans-attribute>Required</trans-attribute> </container-transaction> <container-transaction> <method> <ejb-name>CollectionBean</ejb-name> <method-name>*</method-name> </method> <trans-attribute>Required</trans-attribute> </container-transaction> </assembly-descriptor> </ejb-jar> sun-ejb-jar.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sun-ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 EJB 3.0//EN" "http://www.sun.com/software/appserver/dtds/sun-ejb-jar_3_0-0.dtd"> <sun-ejb-jar> <enterprise-beans> <ejb> <ejb-name>Session11Bean</ejb-name> <jndi-name>ejb/Session11Bean</jndi-name> </ejb> <cmp-resource> <jndi-name>jdbc/DVD</jndi-name> </cmp-resource> </enterprise-beans> </sun-ejb-jar> |
|||
|
||||
| Jackson |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 28.8.2007 Репутация: нет Всего: нет |
Есть решение !!!!!
Надо заменить <ejb-name> c CollectionBean на Collection в sun-cmp-mapping.xml и ejb-rar.xml |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |