Ola Pessoal!!!
Bem o problema é o seguinte, eu tenho uma aplicação que roda no TOMCAT usando um DataSource que funciona muito bem!
Estou tentando migra-la para o Sun AppServer…
Configuro ConnectionPool no servidor que “pinga” com sucesso no banco de dados… então eu crio o JDBC Resource e coloco o nome "jdbc/iPROTv2"
então vamos aos códigos
web.xml
<resource-ref>
<res-ref-name>jdbc/iPROTv2</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
Código na classe
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws NamingException {
LoginForm loginForm = (LoginForm) form;
DataSource ds;
InitialContext ic = new InitialContext();
String dsName = "java:comp/env/jdbc/iPROTv2";
ds = (DataSource) ic.lookup(dsName);//Aqui deveria criar o DataSource ,mas num vai!
//Continuação do código...
return mapping.findForward("sucesso");
}
A mensagem de erro
javax.servlet.ServletException: No object bound to name java:comp/env/jdbc/iPROTv2
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:545)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:486)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:767)
javax.servlet.http.HttpServlet.service(HttpServlet.java:860)
sun.reflect.GeneratedMethodAccessor183.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:324)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:249)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:500)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:282)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:165)
root cause
javax.naming.NameNotFoundException: No object bound to name java:comp/env/jdbc/iPROTv2
com.sun.enterprise.naming.NamingManagerImpl.lookup(NamingManagerImpl.java:668)
com.sun.enterprise.naming.java.javaURLContext.lookup(javaURLContext.java:132)
com.sun.enterprise.naming.SerialContext.lookup(SerialContext.java:288)
javax.naming.InitialContext.lookup(InitialContext.java:347)
com.yourcompany.struts.action.LoginAction.execute(LoginAction.java:54)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:767)
javax.servlet.http.HttpServlet.service(HttpServlet.java:860)
sun.reflect.GeneratedMethodAccessor183.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:324)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:249)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:500)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:282)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:165)
Aceito dicas e sugestões!
Obrigado