JNDI Connection работает на Tomcat, но не работает на Websphere - PullRequest
0 голосов
/ 23 октября 2018

Я подключаюсь к своей базе данных, используя соединение JNDI с SQL Server, до сегодняшнего дня я всегда запускал свое приложение на локальном компьютере, используя сервер приложений tomcat:

Context.xml

<Resource
         url="jdbc:sqlserver://1.1.1.1:1434;databaseName=myDB"
         driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
         username="admin"
         password="admin"
         maxWait="10000"
         maxIdle="30"
         maxActive="100"
         type="javax.sql.DataSource"
         auth="Container"
         name="jdbc/dataquality_sqlServer"/>

Web.xml

<resource-ref>
    <description>DB Connection</description>
    <res-ref-name>jdbc/dataquality_sqlServer</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>

Класс соединения - GerenciadorDeConexao

public void startDB() {

        Context envContext = null;
        DataSource dataSource = null;


        try {
            Context ctx = new InitialContext();
            dataSource = (DataSource) ctx.lookup("java:/comp/env/jdbc/dataquality_sqlServer");
            System.out.println("conectado com sucesso!JNDI");
            conexao = dataSource.getConnection();
            conexao.setAutoCommit(false);

        } catch (Exception e){
            e.printStackTrace();
            //return null;
        }finally {
            if(envContext != null){
                try{
                   envContext.close();
                } catch (NamingException e){
                    System.out.println();
                    e.printStackTrace();
                }
            }
        }
    }

Все это прекрасно работает вмой кот, но теперь я перехожу на сервер Websphere 8.5.По какой-то причине это не работает в веб-сфере, мне интересно, есть ли дополнительный шаг в веб-сфере.Я получил следующую ошибку:

Журнал

[10/22/18 9:50:10:469 BRST] 000001c0 SystemErr     R javax.naming.NameNotFoundException: Name  not found in context "java:".
[10/22/18 9:50:10:469 BRST] 000001c0 SystemErr     R    at com.ibm.ws.naming.ipbase.NameSpace.getParentCtxInternal(NameSpace.java:1970)
[10/22/18 9:50:10:469 BRST] 000001c0 SystemErr     R    at com.ibm.ws.naming.ipbase.NameSpace.retrieveBinding(NameSpace.java:1377)
[10/22/18 9:50:10:470 BRST] 000001c0 SystemErr     R    at com.ibm.ws.naming.ipbase.NameSpace.lookupInternal(NameSpace.java:1220)
[10/22/18 9:50:10:472 BRST] 000001c0 SystemErr     R    at com.ibm.ws.naming.ipbase.NameSpace.lookup(NameSpace.java:1142)
[10/22/18 9:50:10:472 BRST] 000001c0 SystemErr     R    at com.ibm.ws.naming.urlbase.UrlContextImpl.lookupExt(UrlContextImpl.java:1436)
[10/22/18 9:50:10:472 BRST] 000001c0 SystemErr     R    at com.ibm.ws.naming.java.javaURLContextImpl.lookupExt(javaURLContextImpl.java:477)
[10/22/18 9:50:10:472 BRST] 000001c0 SystemErr     R    at com.ibm.ws.naming.java.javaURLContextRoot.lookupExt(javaURLContextRoot.java:485)
[10/22/18 9:50:10:472 BRST] 000001c0 SystemErr     R    at com.ibm.ws.naming.java.javaURLContextRoot.lookup(javaURLContextRoot.java:370)
[10/22/18 9:50:10:472 BRST] 000001c0 SystemErr     R    at org.apache.aries.jndi.DelegateContext.lookup(DelegateContext.java:161)
[10/22/18 9:50:10:472 BRST] 000001c0 SystemErr     R    at javax.naming.InitialContext.lookup(InitialContext.java:428)
[10/22/18 9:50:10:472 BRST] 000001c0 SystemErr     R    at DAO.GerenciadorDeConexao.iniciar(GerenciadorDeConexao.java:30)

Строка 30 в GerenciadorDeConexao:

dataSource = (DataSource) ctx.lookup("java:/comp/env/jdbc/dataquality_sqlServer");

Вебсфера:

inserir a descrição da imagem aqui

1 Ответ

0 голосов
/ 23 октября 2018

Попробуйте поискать java: comp / env / jdbc / dataquality_sqlServer (вместо java: / comp / env)

...