Piotr
Nowicki
JFB Systems,
właściciel
Temat: połączenie z remote ejb oraz z bazą danych na glassfish...
Na JBoss 5.1 plik konfiguracyjny do połączenia z bazą danych:
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
<local-tx-datasource>
<jndi-name>PSQLDB-SKLEPAV</jndi-name>
<connection-url>jdbc:postgresql://localhost:5432/sklepav</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<user-name>postgres</user-name>
<password>postgres</password>
<!-- the minimum size of the connection pool -->
<min-pool-size>1</min-pool-size>
<!-- The maximum connections in a pool/sub-pool -->
<max-pool-size>4</max-pool-size>
</local-tx-datasource>
</datasources>
umieszczam w katalogu JBOSS_HOME\server\default\deploy, w tym samym katalogu umieszczam EAR z utworzonymi encjami, beanami i interfejsami.
Utworzyłem klasę klienta i poprzez InitialContext łączę się z serwerem wszystko działa ok:
context = new InitialContext();
context.addToEnvironment("java.naming.factory.initial",
"org.jnp.interfaces.NamingContextFactory");
context.addToEnvironment("java.naming.factory.url.pkgs",
"org.jboss.naming:org.jnp.interfaces");
context.addToEnvironment("java.naming.provider.url",
"127.0.0.1:1099");
Gdzie trzeba wrzucić plik konfiguracyjny do bazy danych?
Jak wrzucam w miejsce gdzie eclpise umieszcza ear: C:\glassfishv3\glassfish\domains\domain1\eclipseApps to w logach serwera mam:
[#|2009-12-09T21:50:32.921+0100|SEVERE|glassfish|javax.enterprise.system.core.com.sun.enterprise.v3.server|_ThreadID=16;_ThreadName=Thread-1;|Exception while invoking class org.glassfish.persistence.jpa.JPADeployer prepare method
java.lang.RuntimeException: javax.naming.NamingException: Lookup failed for 'java:/PSQLDB-SKLEPAV' in SerialContext [Root exception is javax.naming.NamingException: Invocation exception: Got null ComponentInvocation ]
at org.glassfish.persistence.jpa.PersistenceUnitInfoImpl.<init>(PersistenceUnitInfoImpl.java:111)
at org.glassfish.persistence.jpa.JPAApplication.loadPU(JPAApplication.java:213)
at org.glassfish.persistence.jpa.JPAApplication.loadAllPus(JPAApplication.java:194)
at org.glassfish.persistence.jpa.JPAApplication.<init>(JPAApplication.java:114)
at org.glassfish.persistence.jpa.JPADeployer.prepare(JPADeployer.java:121)
at com.sun.enterprise.v3.server.ApplicationLifecycle.prepareModule(ApplicationLifecycle.java:579)
Jak zainicjalizować InitialContext w klasie klienta?