Paweł Ryznar programista
Temat: EJB i JSF (Managed Bean) - Cannot resolve reference ...
WitamW Netebans 6.5.1 tworzę prosty projekt i podczas uruchomienia dostaję
Deploying application in domain failed; Error loading deployment descriptors for module [BitFaktura] -- Cannot resolve reference Unresolved Ejb-Ref faces.Companies/bank@jndi: @null@ejbs.CompanyLocal@Session@null
w Source Packages mam
ejbs.CompanyBean [@Stateless]
ejbs.CompanyLocal [@Local]
faces.Companies
w facex-config.xml
<managed-bean>
<managed-bean-name>spis</managed-bean-name>
<managed-bean-class>faces.Companies</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
i w faces.Companies
@EJB
private CompanyLocal bank;
a to chyba powinno działać? w sieci widziałem że jakiś deskryptor trzeba uzupełnić
ale na tych stronach przykłady są podobne
Kwadrans w Bibliotece z JSF 1.2, EJB 3.0 i JPA
Element beanName w @EJB do rozróżnienia deklaracji ziaren EJB
Proszę o pomoc :)Paweł Ryznar edytował(a) ten post dnia 03.09.09 o godzinie 20:05
Paweł
Pietrasz
Analityk Integracji
Systemów IT
Temat: EJB i JSF (Managed Bean) - Cannot resolve reference ...
nie wiem na jakim serwerze to odpalasz, ja robilem podobnie na Jboss, mialem plik aa.jar to o ile dobrze pamietam jboss tez po adnotacji @ejb nie widzial mojego komponentu, musialem podac mu atrybut name, o ile dobrze pamietam to jboss chcial @EJB(name="aa/nazwaEjb"). Zobacz sobie jaka nazwe serwer nadaje twoim ejb w jndi,
Paweł Ryznar programista
Temat: EJB i JSF (Managed Bean) - Cannot resolve reference ...
serwer: wcześniej GlassFish V.2 teraz V2.1Paweł Pietrasz:w "Admin Console" ? w "Jndi Tree Browsing" nic szczególnego nie zauważyłem, w gałęzi "ejb" mam tylko "ejb/mgmt/MEJB"
zobacz sobie jaka nazwe serwer nadaje twoim ejb w jndi,
z ciekawości spradziłem jak jest z EntityManager
kod(w zarnie zarządzanym)
@PersistenceContext(unitName = "FakturaPU")
EntityManager em;
i błąd
Deploying application in domain failed; Deployment Error -- Could not resolve a persistence unit corresponding to the persistence-context-ref-name [eu.ryznar.faces.Companies/em] in the scope of the module calledPaweł Ryznar edytował(a) ten post dnia 04.09.09 o godzinie 13:11
Paweł
Pietrasz
Analityk Integracji
Systemów IT
Temat: EJB i JSF (Managed Bean) - Cannot resolve reference ...
WItam,Niestety nie znam glassfisha poniewaz nigdy na nim nie pracowalem. Jezeli nie masz narzuconego serwera, to moze przepnij sie na jboss 5 ?
A zobacz w konsoli jak masz mozliwosc czy glassfish zarejestrowal ci ten datasource do ktorego chcesz sie odwolac ?Paweł Pietrasz edytował(a) ten post dnia 04.09.09 o godzinie 17:23
Paweł Ryznar programista
Temat: EJB i JSF (Managed Bean) - Cannot resolve reference ...
odnośnie datasource, w "Admin Console" -> "Resources" -> "JDBC" -> "JDBC Resources" - mam [chyba] to co trzeba, w "Jndi Tree Browsing" teżz JBoss'em, poczekam spróbuję to w GlassFish'u rozwiązać, aczkolwiek nic mnie nie trzyma, ale nie chcę tak skakać bo i tak same problemy
tym bardziej że jestem początkujący w temacie, a tutoriale działają tylko w teorii z tego co widzę ;)
no chyba że o czymś nie wiem, i dodatkowo trzeba konfigurować serwer żeby @EJB działało poprawnie
wracajac do tego co pisałeś wcześniej
Paweł Pietrasz:
o ile dobrze pamietam to jboss chcial @EJB(name="aa/nazwaEjb")
czy to nie wpłynie negatywnie na przenośność kody między serwerami, np JBoss <-> GlassFish?
Piotr
Stawiński
projektant/programis
ta, Narodowy Bank
Polski
Temat: EJB i JSF (Managed Bean) - Cannot resolve reference ...
CześćJa pracuję na WebLogic 10.3, który jest bardzo podobny do GlassFish'a. W aplikacjach, które piszę wprowadziłem sobie plik persistence.xml w katalogu META-INF. Ma on postać:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<persistence-unit name="MyDataSourcePU" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>jdbc/MyDataSrc</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="hibernate.connection.driver_class" value="oracle.jdbc.driver.OracleDriver" />
<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="false" />
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider" />
<property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.WeblogicTransactionManagerLookup" />
<property name="hibernate.query.factory_class" value="org.hibernate.hql.ast.ASTQueryTranslatorFactory" />
<property name="hibernate.TransactionStrategy" value="org.hibernate.transaction.CMTTransactionFactory" />
<property name="hibernate.current_session_context_class" value="jta" />
<property name="javax.persistence.FlushModeType" value="javax.persistence.FlushModeType.COMMIT" />
</properties>
</persistence-unit>
</persistence>
JndiName mojego źródła danych to jdbc/MyDataSrc. Następnie w managedBean'ie (musi być dodany do faces-config.xml) odwołuję się do EntityManager'a w taki sposób:
public class MyBackingBean {
@PersistenceContext(unitName="MyDataSourcePU")
protected EntityManager em;
}
To MyDataSourcePU jest utożsamianie z persistence-unit z pliku persistence.xmlPiotr Stawiński edytował(a) ten post dnia 04.09.09 o godzinie 19:23
Paweł Ryznar programista
Temat: EJB i JSF (Managed Bean) - Cannot resolve reference ...
utworzyłem projekt jeszcze raz i z @PersistenceContext gra [może jakaś literówka była]nie zmienia to jednak faktu że @EJB powoduje błąd o którym pisałem w pierwszym poście
Piotr
Stawiński
projektant/programis
ta, Narodowy Bank
Polski
Temat: EJB i JSF (Managed Bean) - Cannot resolve reference ...
Czy mógłbyś umieścić gdzieś cały projekt, który Ci nie działa? Może faktycznie jest gdzieś drobny niuans, którego zlokalizowanie jest trudne po samych opisach w tym wątku ;)
Paweł Ryznar programista
Temat: EJB i JSF (Managed Bean) - Cannot resolve reference ...
oczywiście, tu jest archiwum z projektemhttp://www24.zippyshare.com/v/28506467/file.html
Jacek
Laskowski
Specjalista d/s
WebSphere, IBM
Temat: EJB i JSF (Managed Bean) - Cannot resolve reference ...
Cześć,W Java EE 6 takie rozwiązanie ma prawo działać i tylko wtedy, więc wspomniany GlassFish może być pomocny, ale jedynie w wersji v3. W Java EE 5 musisz umieścić ziarno EJB do własnego projektu, a ziarno zarządzane do własnego. Spinasz oba EARem i...powinno działać.
Jacek
Notatnik Projektanta Java EE
Andrzej
Rumak
Im więcej sera tym
więcej dziurek, im
więcej dziurek tym
...
Temat: EJB i JSF (Managed Bean) - Cannot resolve reference ...
Najlepiej w NetBeansie utworzyć projekt Enterprise Application i on to już wszytsko pospina. Ja jak robiłem to sie wzorowałem własnie na przykładzie Jacka:) Z tym że w Twoim przykładzie Jacku beany encyjne trzymasz w osobnym projekcie javowym i podpinasz pod reszte. Mi to nie chciało działac, dopiero jak beany encyjne umieściłem w projekcie ejb. Ale mam jedno pytanie bo zauważyłem że kolega Piotr Stawiński jak i Jacek w swoim przykładzie używają entity managera w managed beanie po stronie klienta. I mam pytanie odnośnie tego - dlaczego?:P Nie znam się w zasadzie ale czy to nie jest troche "słabe"? I czy to nie przeczy pojęciu "cienki klient". Sorry za OT ale mnie to ciekawi i chciałbym znać odpowiedź.
Piotr
Stawiński
projektant/programis
ta, Narodowy Bank
Polski
Temat: EJB i JSF (Managed Bean) - Cannot resolve reference ...
Andrzej Rumak:
... zauważyłem że kolega Piotr Stawiński jak i Jacek w swoim przykładzie używają entity managera w managed beanie po stronie klienta. I mam pytanie odnośnie tego - dlaczego?:P Nie znam się w zasadzie ale czy to nie jest troche "słabe"? I czy to nie przeczy pojęciu "cienki klient". Sorry za OT ale mnie to ciekawi i chciałbym znać odpowiedź.
Cześć
No pewnie, że jest to słabe ;) Podałem tylko i wyłącznie przykład, w którym można sprawdzić czy dostęp do zasobów bazy danych poprzez EntityManager'a działa poprawnie. W produkcyjnych projektach encje mam w oddzielnym projekcie, również warstwa www jest w osobnym oraz każdy biznesowy moduł, który można wydzielić z całości ;)Piotr Stawiński edytował(a) ten post dnia 05.09.09 o godzinie 14:22
Paweł Ryznar programista
Temat: EJB i JSF (Managed Bean) - Cannot resolve reference ...
rzeczywiście, w osobnych projektach spiętych w ear działa :)dziękuje wszystkim, a szczególnie Jackowi :)
Andrzej
Rumak
Im więcej sera tym
więcej dziurek, im
więcej dziurek tym
...
Temat: EJB i JSF (Managed Bean) - Cannot resolve reference ...
Ja też dziękuję za rozwianie wątpliwości:)Temat: EJB i JSF (Managed Bean) - Cannot resolve reference ...
Cześć,Umieszczałeś ścieżkę do JAR-a z ziarnami encyjnymi w pliku META-INF/MANIFEST.MF w atrybucie Class-Path ?
Andrzej Rumak:
Najlepiej w NetBeansie utworzyć projekt Enterprise Application i on to już wszytsko pospina. Ja jak robiłem to sie wzorowałem własnie na przykładzie Jacka:) Z tym że w Twoim przykładzie Jacku beany encyjne trzymasz w osobnym projekcie javowym i podpinasz pod reszte. Mi to nie chciało działac, dopiero jak beany encyjne umieściłem w projekcie ejb. Ale mam jedno pytanie bo zauważyłem że kolega Piotr Stawiński jak i Jacek w swoim przykładzie używają entity managera w managed beanie po stronie klienta. I mam pytanie odnośnie tego - dlaczego?:P Nie znam się w zasadzie ale czy to nie jest troche "słabe"? I czy to nie przeczy pojęciu "cienki klient". Sorry za OT ale mnie to ciekawi i chciałbym znać odpowiedź.
Andrzej
Rumak
Im więcej sera tym
więcej dziurek, im
więcej dziurek tym
...
Temat: EJB i JSF (Managed Bean) - Cannot resolve reference ...
Hej,Nie, nie umieszczałem, ale hmm dziwna sprawa bo teraz zrobiłem na szybko coś prostego i działa. Już nie pamiętam o co wtedy chodziło, ale widocznie coś przeoczyłem;)
Jacek
Laskowski
Specjalista d/s
WebSphere, IBM
Temat: EJB i JSF (Managed Bean) - Cannot resolve reference ...
Andrzej Rumak:
Ale mam jedno pytanie bo zauważyłem że kolega Piotr Stawiński jak i Jacek w swoim przykładzie używają entity managera w managed beanie po stronie klienta. I mam pytanie odnośnie tego - dlaczego?:P Nie znam się w zasadzie ale czy to nie jest troche "słabe"? I czy to nie przeczy pojęciu "cienki klient".
Nigdy się nad tym nie zastanawiałem, ale nie widzę w tym nic niepoprawnego. No może poza zestawieniem środowiska wysokodostępnego - klastra. Załóżmy, że nie masz w ogóle EJB, czy aplikacja webowa bez EJB a z dostępem do bazki przez (uproszczenia) JPA to ZŁO? Nie. Zresztą właśnie rozwój JEE jest jakby potwierdzeniem, że nie ma w tym nic zdrożnego. W końcu możesz skorzystać z profilu webowego + JPA i będzie cacy (już teraz również). Kwestia gustu, możliwości architektonicznych i docelowych parametrów wydajnościowych. Jeśli jednak wrócić do tego pomysłu klastra, wtedy widziałbym dostęp zdalny z JSF (klaster webowy) do EJB+JPA (klaster biznesowy). Liczba serwerów w klastrze będzie zmienna i mam wrażenie, że taka konfiguracja (poza swoją ceną) będzie niezwykle wysokiej wydajności. Niewielkie serwery HTTP na przodzie uzupełnią docelową architekturę. Pytaj dalej. Dzięki takim pytaniom mam pomysły na kolejne wpisy na blogu i się kramik kręci :)
Jacek
Notatnik Projektanta Java EE
