Ich habe unter JSP.Fehler: javax.naming.NoInitialContextException: Fehler beim Erstellen von InitialContext unter Verwendung der in hashtable angegebenen
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@page import="java.sql.*"%>
<%@page import="javax.sql.*"%>
<%@page import="java.util.*"%>
<%@page import="javax.naming.*"%>
<%@page import="java.io.*" %>
<html>
<head>
<%!
\t class LinkedProperties extends Properties {
\t \t private final LinkedHashSet<Object> keys = new LinkedHashSet<Object>();
\t \t public Enumeration<Object> keys() {
\t \t \t return Collections.<Object>enumeration(keys);
\t \t }
\t \t public Object put(Object key, Object value) {
\t \t \t keys.add(key);
\t \t \t return super.put(key, value);
\t \t }
\t }
\t public String getData(ResultSet rs, String tableName) throws Exception {
\t \t String ret ="<div class='tname'>"+tableName+"</div>";
\t \t ret+="<table border=1>";
\t \t ret+="<tr>";
\t \t ResultSetMetaData md = rs.getMetaData() ;
\t \t for(int i = 1; i <= md.getColumnCount(); i++) {
\t \t \t if(md.getColumnLabel(i).equals("UPDATE_DATE") || md.getColumnLabel(i).equals("Update Date")) {
\t \t \t \t ret = ret + "<th class='upd'>"+ md.getColumnLabel(i) + "</th>"; \t \t
\t \t \t } else if(md.getColumnLabel(i).equals("ASSIGNED_TO") || md.getColumnLabel(i).equals("Assigned To")) {
\t \t \t \t ret = ret + "<th class='upd'>"+ md.getColumnLabel(i) + "</th>"; \t \t
\t \t \t } else if(md.getColumnLabel(i).equals("UPDATED_BY") || md.getColumnLabel(i).equals("Updated By")) {
\t \t \t \t ret = ret + "<th class='upd'>"+ md.getColumnLabel(i) + "</th>"; \t \t
\t \t \t } else {
\t \t ret = ret + "<th>"+ md.getColumnLabel(i) + "</th>"; \t \t
\t } \t
}
ret+="</tr>";
\t \t int cnt = 0;
\t \t while(rs.next())
{
\t \t \t cnt++;
\t \t \t ret+="<tr>";
\t \t \t for(int i = 1; i <= md.getColumnCount(); i++)
\t \t \t {
\t \t \t \t if(rs.getString(i) == null) {
\t \t \t \t \t ret = ret + "<td> </td>"; \t \t
\t \t \t \t } else {
\t \t \t \t \t ret = ret + "<td>"+ rs.getString(i) + "</td>"; \t \t
\t \t \t \t }
\t \t \t }
\t \t \t ret+="</tr>";
} \t \t
\t \t if(cnt == 0) return "";
ret+="</table><BR/>";
return ret;
\t }
%>
<%!
\t public String execute(Connection conn, String str, String tableType) throws Exception {
\t \t Statement stmt = null;
\t \t ResultSet rset = null;
\t \t try {
\t \t \t stmt = conn.createStatement();
\t \t \t rset = stmt.executeQuery(str);
\t \t \t return getData(rset, tableType);
\t \t } catch (Exception exp) {
\t \t \t throw exp;
\t \t } finally {
\t \t \t try { rset.close(); } catch (Exception ignore) {}
\t \t \t try { stmt.close(); } catch (Exception ignore) {}
\t \t }
\t }
%>
<%
String key, val;
String sql = "";
String ret = "";
Connection conn = null;
try {
\t
\t String typ = "role";//request.getParameter("t");
\t if(typ==null) throw new Exception("Type is blank");
\t if(!typ.equals("role") && !typ.equals("produit")) {
\t \t throw new Exception("Invalid Type");
\t }
\t
\t InputStream stream = application.getResourceAsStream("/tasksdisplay.properties");
\t LinkedProperties props = new LinkedProperties();
\t props.load(stream);
\t LinkedHashMap<String, String> mapSQL = new LinkedHashMap<String, String>();
\t
\t String dbname = "mdmtrg01-CMX_ORS";//request.getParameter("d");
\t if(dbname == null) {
\t \t dbname = "mdmtrg01-CMX_ORS";
\t }
\t
\t String dbJNDIName = "java:jdbc/siperian-mdmtrg01-cmx_ors-ds";//System.getProperty(dbname);
\t if(dbJNDIName == null) {
\t \t throw new Exception("Invalid database name. Must set dbname in JBoss startup");
\t }
\t
\t Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.ibm.websphere.naming.WsnInitialContextFactory");
env.put(Context.PROVIDER_URL, "iiop://mdma302p.corpads.local:30305");
Context initialContext = new InitialContext(env);
\t
\t Context aContext = new InitialContext(env);
\t DataSource aDataSource = (DataSource)aContext.lookup("java:jdbc/siperian-mdmtrg01-cmx_ors-ds");
\t //DataSource aDataSource = (DataSource)aContext.lookup(dbJNDIName);
\t conn = (Connection)(aDataSource.getConnection());
\t for (Map.Entry<String,String> entry : mapSQL.entrySet()) {
\t \t key = entry.getKey();
\t \t sql = entry.getValue();
\t \t ret = execute(conn, sql, key);
\t \t %>
\t \t \t <%=ret%>
\t \t <%
\t }
%>
<%
} catch (Exception exp) {
\t exp.printStackTrace();
\t String err = exp.toString();
\t err += "<BR/>sql##E:"+sql;
%>
\t Error:<%=err%>
<% \t
} finally {
\t try { conn.close(); } catch (Exception ignore) {}
}
%>
<style>
.tname {
\t color: red;
\t font-size: 16px;
\t font-weight:bold;
}
table{
\t font-family: Verdana;
font-size: 12px;
font-weight: normal;
text-align: center; \t
}
table th {
\t color: #225F8E;
}
table td {
\t background-color: #DBFCF5;
}
a {
\t color: blue;
}
.upd {
\t background-color: yellow;
}
</style>
</head>
</html>
Ich benutze JDK1.7. Nach dem Hinzufügen der 2 JARS bekomme ich unter Fehler Fehler: javax.naming.ConfigurationException: Namespace-Accessor für den Java: Namespace wurde nicht festgelegt. Mögliche Ursache ist, dass der Benutzer einen Java: URL-Namen in einem JNDI-Kontextmethodenaufruf angibt, aber nicht in einer J2EE-Client- oder -Serverumgebung ausgeführt wird.
starten Vorschau-Server auf Port 8080
Module: customTabFromKb_1 (/ customTabFromKb_1) Proxy (/ Proxy)
NMSV0307E: Ein Java: URL-Name verwendet wurde, aber Naming wurde nicht Java zu handhaben konfiguriert : URL-Namen Die wahrscheinlichste Ursache ist ein Benutzer, der versucht, einen Java: URL-Namen in einer Nicht-J2EE-Client- oder -Serverumgebung anzugeben. Konfigurationsexzeption werfen. javax.naming.ConfigurationException: Der Name-Space-Accessor für den Bereich java: name wurde nicht festgelegt. Mögliche Ursache ist, dass der Benutzer einen Java: URL-Namen in einem JNDI-Kontextmethodenaufruf angibt, aber nicht in einer J2EE-Client- oder -Serverumgebung ausgeführt wird. bei com.ibm.ws.naming.java.javaURLContextFactory.isNameSpaceAccessable (javaURLContextFactory.java:109) bei com.ibm.ws.naming.urlbase.UrlContextFactory.getObjectInstance (UrlContextFactory.java:85) bei javax.naming. spi.NamingManager.getURLContext (NamingManager.java:660) bei javax.naming.InitialContext.getURLOrDefaultInitCtx (InitialContext.java:422) bei javax.naming.InitialContext.lookup (InitialContext.java:436) bei org.apache. jsp.Test_jsp._jspService (Test_jsp.java:162) bei org.apache.jasper.runtime.HttpJspBase.service (HttpJspBase.java:97) bei javax.servlet.http.HttpServlet.service (HttpServlet.java:820) bei org.apache.jasper.servlet.JspServletWrapper.service (JspServletWrapper.java:332) bei org.apache.jasper.servlet.JspServlet.serviceJspFile (JspServlet.java:314) bei org.apache.jasper.servlet.JspServlet.service (JspServlet.java:264) bei javax.servlet.http.HttpServlet. Service (HttpServlet.java:820) bei org.mortbay.jetty.servlet.ServletHolder.handle (ServletHolder.java:511) bei org.mortbay.jetty.servlet.ServletHandler.handle (ServletHandler.java:390) bei org.mortbay.jetty.security.SecurityHandler.handle (SecurityHandler.java:216) bei org.mortbay.jetty.servlet.SessionHandler.handle (SessionHandler.java:182) bei org.mortbay.jetty.handler.ContextHandler. handle (ContextHandler.java:765) bei org.mortbay.jetty.webapp.WebAppContext.handle (WebAppContext.java:418) bei org.mortbay.jetty.handle r.HandlerList.handle (HandlerList.java:49) bei org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:152) bei org.mortbay.jetty.Server.handle (Server.java:326) bei org.mortbay.jetty.HttpConnection.handleRequest (HttpConnection.java:542) bei org.mortbay.jetty.HttpConnection $ RequestHandler.headerComplete (HttpConnection.java:924) bei org.mortbay.jetty.HttpParser.parseNext (HttpParser.java:549) bei org.mortbay.jetty.HttpParser.parseAvailable (HttpParser.java:212) bei org.mortbay.jetty.HttpConnection.handle (HttpConnection.java:404) bei org.mortbay. jetty.bio.SocketConnector $ Connection.run (SocketConnector.java:228) bei org.mortbay.thread.QueuedThreadPool $ PoolThread.run (QueuedThreadPool.java:582) NMSV0307E: Ein Java: URL-Name wurde verwendet, aber Naming war nicht konfiguriert, um Java zu behandeln: URL-Namen. Die wahrscheinlichste Ursache ist ein Benutzer, der versucht, einen Java: URL-Namen in einer Nicht-J2EE-Client- oder -Serverumgebung anzugeben. Konfigurationsexzeption werfen. javax.naming.ConfigurationException: Der Name-Space-Accessor für den Bereich java: name wurde nicht festgelegt. Mögliche Ursache ist, dass der Benutzer einen Java: URL-Namen in einem JNDI-Kontextmethodenaufruf angibt, aber nicht in einer J2EE-Client- oder -Serverumgebung ausgeführt wird. bei com.ibm.ws.naming.java.javaURLContextFactory.isNameSpaceAccessable (javaURLContextFactory.java:109) bei com.ibm.ws.naming.urlbase.UrlContextFactory.getObjectInstance (UrlContextFactory.java:85) bei javax.naming. spi.NamingManager.getURLContext (NamingManager.java:660) bei javax.naming.InitialContext.getURLOrDefaultInitCtx (InitialContext.java:422) bei javax.naming.InitialContext.lookup (InitialContext.java:436) bei org.apache. jsp.Test_jsp._jspService (Test_jsp.java:162) bei org.apache.jasper.runtime.HttpJspBase.service (HttpJspBase.java:97) bei javax.servlet.http.HttpServlet.service (HttpServlet.java:820) bei org.apache.jasper.servlet.JspServletWrapper.service (JspServletWrapper.java:332) bei org.apache.jasper.servlet.JspServlet.serviceJspFile (JspServlet.java:314) bei org.apache.jasper.servlet.JspServlet.service (JspServlet.java:264) bei javax.servlet.http.HttpServlet. Service (HttpServlet.java:820) bei org.mortbay.jetty.servlet.ServletHolder.handle (ServletHolder.java:511) bei org.mortbay.jetty.servlet.ServletHandler.handle (ServletHandler.java:390) bei org.mortbay.jetty.security.SecurityHandler.handle (SecurityHandler.java:216) bei org.mortbay.jetty.servlet.SessionHandler.handle (SessionHandler.java:182) bei org.mortbay.jetty.handler.ContextHandler. handle (ContextHandler.java:765) bei org.mortbay.jetty.webapp.WebAppContext.handle (WebAppContext.java:418) bei org.mortbay.jetty.handle r.HandlerList.handle (HandlerList.java:49) bei org.mortbay.jetty.handler.HandlerWrapper.handle (HandlerWrapper.java:152) bei org.mortbay.jetty.Server.handle (Server.java:326) bei org.mortbay.jetty.HttpConnection.handleRequest (HttpConnection.java:542) bei org.mortbay.jetty.HttpConnection $ RequestHandler.headerComplete (HttpConnection.java:924) bei org.mortbay.jetty.HttpParser.parseNext (HttpParser.java:549) bei org.mortbay.jetty.HttpParser.parseAvailable (HttpParser.java:212) bei org.mortbay.jetty.HttpConnection.handle (HttpConnection.java:404) bei org.mortbay.jetty. bio.SocketConnector $ Connection.run (SocketConnector.java:228) bei org.mortbay.thread.QueuedThreadPool $ PoolThread.run (QueuedThreadPool.java:582)
Bitte helfen Sie mir in dieser Hinsicht!
Sie sollten Java-Code in JSP vermeiden. Bitte beachten Sie den Link: http: //stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files –
Vielen Dank. Ich möchte wissen, dass ich in meiner Java-Klasse auch den gleichen Fehler bekomme, während ich versuche, die Verbindung mithilfe von JNDI Lookup zu erhalten. bitte hilfe. – user3607647
Könnten Sie Ihren Code bitte erneut posten? –