Ahoj,
odpovídám na zprávu z pátku, 15. srpna 2008,
kterou Jakub Podlesak napsal(a) v 12:28:57:
>> Nakonec jsem to ale vyřešil, použil jsem Tomcat a přepsal jsem
>> inicializaci EntityManageru na klasický tvar
>>
>> emf = Persistence.createEntityManagerFactory(DEFAULT_PU);
>> em = emf.createEntityManager();
>> utx = em.getTransaction();
J> Pridal jsem informaci k bug reportu.
To se ale týká úplně jiného problému.
Ten report je na problém, kvůli kterému nejde vůbec použít hibernate a
Jersey knihovna současně.
A napsal jsem tam i řešení.
A tohle se zase týká té chyby
java.lang.ClassCastException: cz.atomsoft.web.model.Game cannot be cast to
cz.atomsoft.web.model.Game
Zde jsem na řešení nepřišel, proto jsem napsal sem do diskuze. Patrně
ale půjde o to, že ten způsob jak se tam přístupuje k EntityManageru
nějak způsobí, že se jedna třída načte dvě classloaderama. Na to bych
musel napsat druhý report, ale nemůžu reportovat něco, co vlastně
nevím, proč to nefunguje.
>> A taky se mi vůbec nelíbí jak ten tool formátuje kód, tohle je podle
>> mě zcela nečitelné:
>>
>> @GET
>> @Produces({"application/xml", "application/json"})
>> public GamesConverter get(@QueryParam("start")
>> @DefaultValue("0")
>> int start, @QueryParam("max")
>> @DefaultValue("10")
>> int max, @QueryParam("expandLevel")
>> @DefaultValue("1")
>> int expandLevel, @QueryParam("query")
>> @DefaultValue("SELECT e FROM Game e")
>> String query) {
J> Souhlasim, reknu lidem z tooling tymu na mitingu pristi tyden.
Já bych navrhoval toto:
public GamesConverter get(
@QueryParam("start") @DefaultValue("0") int start,
@QueryParam("max") @DefaultValue("10") int max,
@QueryParam("expandLevel") @DefaultValue("1") int expandLevel,
@QueryParam("query") @DefaultValue("SELECT e FROM Game e") String query) {
...
}
--------------------------- Původní zpráva ---------------------------
Odesilatel: Jakub Podlesak <[EMAIL PROTECTED]>
Předmět: Hibernate + REST (Jersey) na Glassfih3
Datum: 15. srpna 2008, 12:28:57 (GMT +0200)
Přílohy: <none>
msgid:[EMAIL PROTECTED]
J> On Fri, Aug 15, 2008 at 10:28:29AM +0200, Tomáš Procházka wrote:
>> Ahoj,
>> odpovídám na zprávu ze čtvrtka, 14. srpna 2008,
>> kterou Jakub Podlesak napsal(a) v 17:28:44:
>>
>> J> Melo by byt popsano na
>> J>
>> http://wikis.sun.com/display/Jersey/Resolving+ASM+dependency+issues+with+Jersey+and+Hibernate
>>
>>
>> J> Protoze jde o kod generovany toolingem, poprosil bych
>> J> o zareportovani v http://www.netbeans.org/community/issues.html
>> J> (component websvc, subcomponent: rest)
>> J> Idealne s pripojenym jednoduchym test case.
>> J> Clovek, ktery plugin testuje mi rikal, ze o problemu nevi,
>> J> takze neni nutne nic overovat.
>>
>> Zde není chyba podle mě v REST podpoře, nýbrž v tom, že Netbeans v
>> sobě obsahuje knihovnu Hibernate, která používá cglib a dva asm jary,
>> což jsou standardní dependence Hibernate. Problém je, že Jersey
>> používá také ASM, ale v jiné nekompatibilní verzi. Řešení je aby
>> hibernate knihovna používala cglib-nodep a tím se ztratí dvě verze
>> ASM. Takže oprava by měla být jinde než v RESTu, ale exportuji to do
>> RESTu, oni si to přehodí.
J> Presne tak, tech tymu je vic, ale je potreba to alespon nekomu zadat,
J> aby se to dalo opravit.
>>
>> Zde je ten report
>> http://www.netbeans.org/issues/show_bug.cgi?id=144016
J> Diky za report!
>>
>>
>> J> [PersistenceService] by mela byt podle mych informaci
>> J> v dalsi verzi pluginu bud odstranena, nebo podstatne prepsana.
>>
>> J> Kazdopadne pro identifikaci popisovaneho problemu by bylo skvele
>> J> mit nejaky reprodukovatelny test case.
>>
>> Mám testovací projekt, mohu zaslat.
>>
>> Nakonec jsem to ale vyřešil, použil jsem Tomcat a přepsal jsem
>> inicializaci EntityManageru na klasický tvar
>>
>> emf = Persistence.createEntityManagerFactory(DEFAULT_PU);
>> em = emf.createEntityManager();
>> utx = em.getTransaction();
J> Pridal jsem informaci k bug reportu.
>>
------------------------ Konec původní zprávy ------------------------
--
---------------------------------------------------------------------
Tomáš Procházka
E-mail: [EMAIL PROTECTED]
WWW: http://www.atomsoft.cz
ICQ: 87147320
---------------------------------------------------------------------