Anonymous | Login | Signup for a new account | 12-17-2024 10:52 PST |
Main | My View | View Issues | Change Log | Docs |
Viewing Issue Advanced Details [ Jump to Notes ] | [ View Simple ] [ Issue History ] [ Print ] | ||||||||
ID | Category | Severity | Reproducibility | Date Submitted | Last Update | ||||
0005024 | [Resin] | minor | always | 04-06-12 15:02 | 06-21-12 15:59 | ||||
Reporter | rickHigh | View Status | public | ||||||
Assigned To | ferg | ||||||||
Priority | normal | Resolution | fixed | Platform | |||||
Status | closed | OS | |||||||
Projection | none | OS Version | |||||||
ETA | none | Fixed in Version | 4.0.29 | Product Version | |||||
Product Build | |||||||||
Summary | 0005024: EC2 CONFIG DEPLOY: Problems using MySQL @Inject DataSource with config-deploy | ||||||||
Description |
EC2 CONFIG DEPLOY: Problems using MySQL @Inject DataSource with config-deploy. The deployment does not show up in the JMX tab of the resin-admin. The error is as follows: 500 Servlet Exception javax.enterprise.inject.UnsatisfiedResolutionException: example.BlogServlet.database: Can't find a bean for 'interface javax.sql.DataSource' because no beans implementing that class have been registered with the injection manager InjectManager[web-app:production/webapp/default/blog]. Resin/4.0.27 Server: 'app-0' This was in the log: [12-04-06 14:44:00.783] {resin-port-8080-47} WebApp[production/webapp/default/blog] fail [12-04-06 14:44:00.784] {resin-port-8080-47} javax.enterprise.inject.UnsatisfiedResolutionException: example.BlogServlet.database: Can't find a bean for 'interface javax.sql.DataSource' because no beans implementing that class have been registered with the injection manager InjectManager[web-app:production/webapp/default/blog]. [12-04-06 14:44:00.785] {resin-port-8080-47} javax.enterprise.inject.UnsatisfiedResolutionException: example.BlogServlet.database: Can't find a bean for 'interface javax.sql.DataSource' because no beans implementing that class have been registered with the injection manager InjectManager[web-app:production/webapp/default/blog]. FROM RESIN-ADMIN ConnectionPool resin:Host=default,WebApp=/resin-doc,name=jdbc/resin,type=ConnectionPool Database resin:Host=default,WebApp=/resin-doc,name=jdbc/resin,type=Database JdbcDriver resin:Host=default,WebApp=/resin-doc,name=jdbc/resin,type=JdbcDriver,url="jdbc:resin:/var/www/doc/resin-doc/WEB-INF/db" It is missing from JMX. The deploy looks like it is working as follows: To verify that our deploy worked, lets run resinctl config-ls, and resinctl config-cat: $ resinctl config-ls Output: resin-inf/blog-db/blog-database-conf.xml resin-inf/blog-db/lib/mysql-connector-java-5.1.19-bin.jar $ resinctl config-cat resin-inf/blog-db/blog-database-conf.xml Output: <resin xmlns="http://caucho.com/ns/resin" [^] xmlns:resin="urn:java:com.caucho.resin"> <database jndi-name="jdbc/blogdb"> <driver type="com.mysql.jdbc.Driver"> <url>jdbc:mysql://localhost:3306/blogdb</url> [^] <user>bloguser</user> <password>roofoo</password> </driver> </database> </resin> $ ls /var/www/resin-data/app-0/config/resin-inf/blog-db/ blog-database-conf.xml lib $ ls /var/www/resin-data/app-0/config/resin-inf/blog-db/lib mysql-connector-java-5.1.19-bin.jar $ ls /var/www/resin-data/app-0/config/resin-inf/blog-db/blog-database-conf.xml /var/www/resin-data/app-0/config/resin-inf/blog-db/blog-database-conf.xml rick@ubuntu:~$ cat /var/www/resin-data/app-0/config/resin-inf/blog-db/blog-database-conf.xml <resin xmlns="http://caucho.com/ns/resin" [^] xmlns:resin="urn:java:com.caucho.resin"> <database jndi-name="jdbc/blogdb"> <driver type="com.mysql.jdbc.Driver"> <url>jdbc:mysql://localhost:3306/blogdb</url> [^] <user>bloguser</user> <password>roofoo</password> </driver> </database> </resin> |
||||||||
Steps To Reproduce | |||||||||
Additional Information | |||||||||
Attached Files | |||||||||
|
Notes | |
(0005737) rickHigh 04-06-12 15:07 |
MySQL should load because of ls /var/www/resin-data/app-0/config/resin-inf/blog-db/lib is under cloud:/resin-inf cloud:/resin-inf = /var/www/resin-data/app-0/config/resin-inf/ I think... <class-loader> <tree-loader path="${resin.root}/ext-lib"/> <tree-loader path="${resin.root}/resin-inf"/> <tree-loader path="cloud:/resin-inf"/> </class-loader> |
(0005738) rickHigh 04-06-12 15:12 |
I tried to move it based on $ resinctl config-ls app-inf/blog-db/blog-database-conf.xml app-inf/blog-db/lib/mysql-connector-java-5.1.19-bin.jar It seems like this is not working either.... <!-- shared jars and drivers for the app-tier --> <class-loader> <tree-loader path="${resin.root}/${cluster.id}-inf"/> <tree-loader path="cloud:/{cluster.id}-inf"/> </class-loader> <!-- include resources config files in resources/ --> <resin:import fileset="${__DIR__}/${cluster.id}-inf/**/*.xml"/> <resin:import fileset="cloud:/${cluster.id}-inf/**/*.xml" recover="true"/> |
(0005739) rickHigh 04-06-12 18:46 |
I got it to deploy with including the jar in the war (WEB-INF/lib) and creating a resin-web.xml file with the configured driver. This works.... <web-app xmlns="http://caucho.com/ns/resin"> [^] <database jndi-name="jdbc/blogdb"> <driver type="com.mysql.jdbc.Driver"> <url>jdbc:mysql://localhost:3306/blogdb</url> [^] <user>bloguser</user> <password>roofoo</password> </driver> </database> </web-app> With this: @WebServlet("/blog") public class BlogServlet extends HttpServlet { @Inject @Named("jdbc/blogdb") private DataSource database; Now I am going to retrace my steps and see if I can get it to work with config-deploy |
(0005929) ferg 06-21-12 15:59 |
See 0005004 |
Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
36 total queries executed. 30 unique queries executed. |