[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [jetty-users] jetty-maven-plugin v8, failsafe and JNDI failure
|
Ah ha!
Thank you very much, it works perfectly now. Of course its always the
silly things that you overlook...
On 4 December 2012 21:23, Jan Bartel <janb@xxxxxxxxxxx> wrote:
> Do you have the datasource defined as a <resource-ref> in web.xml?
>
> Jan
>
>
> On 5 December 2012 03:32, Adam Retter <adam.retter@xxxxxxxxxxxxxx> wrote:
>>
>> Hi there,
>>
>> I have been using the jetty-maven-plugin in combination with the
>> maven-failsafe-plugin to start and stop jetty before and after our
>> integration tests are executed.
>>
>> So far this has worked well, however we are trying to move to JNDI for
>> our database connections, rather than configuring them directly
>> through our Spring applicationContext.xml
>>
>> We are using version 8.1.8.v20121106 of the jetty-maven-plugin, and
>> even though Jetty appears to start the C3P0 connection pool we define
>> in its JNDI connection, when our Web App tries to get a JNDI
>> datasource, it always fails with the error:
>>
>> javax.naming.NameNotFoundException; remaining name 'jdbc/substitute'
>>
>> The jetty part of our Maven pom.xml looks like this:
>>
>> <plugin>
>> <groupId>org.mortbay.jetty</groupId>
>> <artifactId>jetty-maven-plugin</artifactId>
>> <configuration>
>> <scanIntervalSeconds>10</scanIntervalSeconds>
>> <stopPort>8995</stopPort>
>> <stopKey>STOP</stopKey>
>> <contextPath>/</contextPath>
>> <connectors>
>> <connector
>> implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
>> <port>8990</port>
>> <maxIdleTime>60000</maxIdleTime>
>> </connector>
>> </connectors>
>> <systemProperties>
>> <systemProperty>
>> <name>substitutes.folder</name>
>> <value>target/test/substitutes</value>
>> </systemProperty>
>> <systemProperty>
>> <name>temp.folder</name>
>> <value>target/test/tmp/substitutes</value>
>> </systemProperty>
>> </systemProperties>
>>
>> <jettyConfig>src/test/resources/jetty-config.xml</jettyConfig>
>> </configuration>
>> <executions>
>> <execution>
>> <id>start-jetty</id>
>> <phase>pre-integration-test</phase>
>> <goals>
>> <goal>run-exploded</goal>
>> </goals>
>> <configuration>
>>
>> <scanIntervalSeconds>0</scanIntervalSeconds>
>> <daemon>true</daemon>
>> </configuration>
>> </execution>
>> <execution>
>> <id>stop-jetty</id>
>> <phase>post-integration-test</phase>
>> <goals>
>> <goal>stop</goal>
>> </goals>
>> </execution>
>> </executions>
>> <dependencies>
>> <dependency>
>> <groupId>c3p0</groupId>
>> <artifactId>c3p0</artifactId>
>> <version>${c3p0.version}</version>
>> <scope>runtime</scope>
>> </dependency>
>> <dependency>
>> <groupId>hsqldb</groupId>
>> <artifactId>hsqldb</artifactId>
>> <version>1.8.0.10</version>
>> <scope>runtime</scope>
>> </dependency>
>> </dependencies>
>> </plugin>
>>
>> The jetty-config.xml file referenced in the pom.xml above looks like this:
>>
>> <?xml version="1.0"?>
>> <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN"
>> "http://www.eclipse.org/jetty/configure.dtd">
>> <Configure id="Server" class="org.eclipse.jetty.server.Server">
>>
>> <New id="substituteServer"
>> class="org.eclipse.jetty.plus.jndi.Resource">
>> <Arg>jdbc/substitute</Arg>
>> <Arg>
>> <New class="com.mchange.v2.c3p0.ComboPooledDataSource">
>> <Set name="driverClass">org.hsqldb.jdbc.JDBCDriver</Set>
>> <Set name="jdbcUrl">jdbc:hsqldb:mem:test</Set>
>> <Set name="user">SA</Set>
>> <Set name="password"></Set>
>> </New>
>> </Arg>
>> </New>
>> </Configure>
>>
>> When we run 'mvn clean install' and it gets to the failsafe plugin, we
>> see the following on the console:
>>
>> [INFO]
>> [INFO] <<< jetty-maven-plugin:8.1.8.v20121106:run-exploded
>> (start-jetty) @ substitute-server <<<
>> [INFO]
>> [INFO] --- jetty-maven-plugin:8.1.8.v20121106:run-exploded
>> (start-jetty) @ substitute-server ---
>> [INFO] Configuring Jetty for project: substitute-server
>> [INFO] Configuring Jetty from xml configuration file =
>>
>> /home/dev/svn-root/trunk/substitute/substitute-server/src/test/resources/jetty-config.xml
>> Dec 4, 2012 4:20:24 PM com.mchange.v2.log.MLog <clinit>
>> INFO: MLog clients using java 1.4+ standard logging.
>> Dec 4, 2012 4:20:24 PM com.mchange.v2.c3p0.C3P0Registry banner
>> INFO: Initializing c3p0-0.9.1.2 [built 21-May-2007 15:04:56; debug?
>> true; trace: 10]
>> [INFO] Context path = /
>> [INFO] Tmp directory =
>> /home/dev/svn-root/trunk/substitute/substitute-server/target/tmp
>> [INFO] Web defaults = org/eclipse/jetty/webapp/webdefault.xml
>> [INFO] Web overrides = none
>> 2012-12-04 16:20:25.070:INFO:oejs.Server:jetty-8.1.8.v20121106
>> 2012-12-04 16:20:26.621:INFO:oejpw.PlusConfiguration:No Transaction
>> manager found - if your webapp requires one, please configure one.
>> Null identity service, trying login service: null
>> Finding identity service: null
>> 2012-12-04 16:20:36.829:INFO:oejsh.ContextHandler:started
>>
>> o.m.j.p.JettyWebAppContext{/,file:/home/dev/svn-root/trunk/substitute/substitute-server/target/substitute-server-3.0-SNAPSHOT/},/home/dev/svn-root/trunk/substitute/substitute-server/target/substitute-server-3.0-SNAPSHOT
>>
>> In the above output I can see that Jetty indeed started up the c3p0
>> connection pool, so from that I assume that it should have bound the
>> JNDI resource, however as Jetty then starts up our Spring Web App, I
>> see the following:
>>
>> Related cause: org.springframework.beans.factory.BeanCreationException:
>> Error creating bean with name 'substituteDataSource': Invocation of
>> init method failed; nested exception is
>> javax.naming.NameNotFoundException; remaining name 'jdbc/substitute'
>>
>> The related Spring config looks like:
>>
>> <jee:jndi-lookup id="substituteDataSource"
>> jndi-name="java:comp/env/jdbc/substitute"
>> expected-type="javax.sql.DataSource"/>
>>
>> So my question is, why can spring not bind to the JNDI resource that
>> we have setup in Jetty?
>>
>> Thanks Adam.
>>
>>
>> --
>> Adam Retter
>>
>> skype: adam.retter
>> tweet: adamretter
>> http://www.adamretter.org.uk
>> _______________________________________________
>> jetty-users mailing list
>> jetty-users@xxxxxxxxxxx
>> https://dev.eclipse.org/mailman/listinfo/jetty-users
>
>
>
>
> --
> Jan Bartel <janb@xxxxxxxxxxx>
> www.webtide.com – Developer advice, services and support
> from the Jetty & CometD experts.
>
> _______________________________________________
> jetty-users mailing list
> jetty-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/jetty-users
>
--
Adam Retter
skype: adam.retter
tweet: adamretter
http://www.adamretter.org.uk