powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / DataSource в JSF
12 сообщений из 12, страница 1 из 1
DataSource в JSF
    #34190994
jsfmania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня JSF приложение работает с MSSQL, наверно самое грамотное решение - это реализовать все через datasource.
Можно сделать так,
Код: plaintext
1.
 DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/mydb");
 
но тогда у Томката в /conf/server.xml надо прописывать вот такую штуку (типа ссылку по JNDI) -
<DefaultContext>
<Resource name="jdbc/mydb" auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/mydb">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>org.postgresql.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:postgresql://127.0.0.1:5432/postgres</value>
</parameter>
<parameter>
<name>username</name>
<value>dbuser</value>
</parameter>
<parameter>
<name>password</name>
<value>dbpassword</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>poolPreparedStatements</name>
<value>true</value>
</parameter>
</ResourceParams>
</DefaultContext>

получается что мое приложение не универсальное, то есть если мне его потом деплоить в Жбоссе надо у него править файлик, который отвечает за datasource.

Есть ли какой нить другой выход?
...
Рейтинг: 0 / 0
DataSource в JSF
    #34191302
BlackWall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можешь работать с БД напрямую, через JDBC драйвер. Но опять, твое приложение не будет универсальным - придется его конфигурить под конкретную БД. Панацеи нет:) По-моему, JNDI - все же более универсальный подход
...
Рейтинг: 0 / 0
DataSource в JSF
    #34191418
jsfmania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вопрос имено в data source - это намного лучше прямого обращения
...
Рейтинг: 0 / 0
DataSource в JSF
    #34191481
jsfmania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ошибку Томкат выдает:
org.apache.jasper.JasperException: Cannot find FacesContext
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

может я неправильно выше написаное сунул в /conf/server.xml


</Host>

<DefaultContext>

<Resource name="jdbc/mydb" auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/mydb">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>

<parameter>
<name>driverClassName</name>
<value>net.sourceforge.jtds.jdbc.Driver</value>
</parameter>


<parameter>
<name>url</name>
<value>jdbc:jtds:sqlserver://localhost:1433/test</value>
</parameter>

<parameter>
<name>username</name>
<value>sa</value>
</parameter>

<parameter>
<name>password</name>
<value></value>
</parameter>

<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>

<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>

<parameter>
<name>poolPreparedStatements</name>
<value>true</value>
</parameter>

</ResourceParams>
</DefaultContext>

</Engine>

может не туда?
...
Рейтинг: 0 / 0
DataSource в JSF
    #34192353
jsfmania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ! Неужели никто не знает?
...
Рейтинг: 0 / 0
DataSource в JSF
    #34192552
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jsfmania
получается что мое приложение не универсальное, то есть если мне его потом деплоить в Жбоссе надо у него править файлик, который отвечает за datasource.
Есть ли какой нить другой выход?

это по началу всех шокирует. но с т/з афтаров j2ee это и есть наивысшее благо портабильности. в первых главах мега-j2ee-спеки которую все просто обожают читать. определны роли для чуваков учавствующих в освоении бабок в частности поставщик бина, развёртывальщик и т.д. (точно не помню), и соответственно их обязанности. так вот, основная идея как раз в этом и заключается что афтар-бина использует локальное JNDI имя из компонентского контекста java:comp/env/jdbc/mydb. а деплоер связывает специфическим для аппп.серв. дескриптором развёртывания с ресурсом развёрнутом на его апп.серв.е (в общем случае имеющем "глобальное" JNDI имя - так что вам ещё повезло: на одну вязку меньше). в общем рекомендация расслабиться: так наверняка можно сделать, но это не то на что расчитанно j2ee (вы ведь не знаете с какой бд будет работать ваша апликуха). в джейбосе кажется можно в SAR класть и ear и -ds.xml. тогда sar deployer заколбасит и датасоурц и апликуху (хотя может наврал)

удачи
...
Рейтинг: 0 / 0
DataSource в JSF
    #34193068
jsfmania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
C Жбоссом все понятно, а вот как быть в Томкате?
...
Рейтинг: 0 / 0
DataSource в JSF
    #34193349
wessen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jsfmaniaНарод! Неужели никто не знает?
Ошибка не связана с DataSource. C JSF проблемы.
...
Рейтинг: 0 / 0
DataSource в JSF
    #34193386
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Meta-inf/context.xml

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<Context path="/" debug="5" crossContext="true">
        <Resource name="jdbc/OracleDS" auth="Container"
                  type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver"
                  url="jdbc:oracle:thin:@server:1521:sid"
                  username="username" password="password" maxActive="20" maxIdle="10"
                  maxWait="-1"
                  removeAbandoned="true"
                  removeAbandonedTimeout="60"
                logAbandoned="true"/>
</Context>
...
Рейтинг: 0 / 0
DataSource в JSF
    #34194017
jsfmania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zalexakaMeta-inf/context.xml

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<Context path="/" debug="5" crossContext="true">
        <Resource name="jdbc/OracleDS" auth="Container"
                  type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver"
                  url="jdbc:oracle:thin:@server:1521:sid"
                  username="username" password="password" maxActive="20" maxIdle="10"
                  maxWait="-1"
                  removeAbandoned="true"
                  removeAbandonedTimeout="60"
                logAbandoned="true"/>
</Context>


Спасибо за совет у вас в Томкате это работает? Я так понял это для ЖБосса.
...
Рейтинг: 0 / 0
DataSource в JSF
    #34195469
jsfmania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
zalexakaMeta-inf/context.xml

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
<Context path="/" debug="5" crossContext="true">
        <Resource name="jdbc/OracleDS" auth="Container"
                  type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver"
                  url="jdbc:oracle:thin:@server:1521:sid"
                  username="username" password="password" maxActive="20" maxIdle="10"
                  maxWait="-1"
                  removeAbandoned="true"
                  removeAbandonedTimeout="60"
                logAbandoned="true"/>
</Context>


сделал это в Томкате вроде, но он мне новую выдал:

org.apache.jasper.JasperException: Exception in JSP: /index.jsp:4

1: <html>
2: <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
3: <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
4: <f:view>
5: <head>
6: <link href="styles.css" rel="stylesheet" type="text/css"/>
7: <f:loadBundle basename="com.corejsf.messages" var="msgs"/>

вечно с <f:view> какие-то проблемы, ниже полный текст index.jsp:

<html>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<f:view>
<head>
<link href="styles.css" rel="stylesheet" type="text/css"/>
<f:loadBundle basename="com.corejsf.messages" var="msgs"/>
<title>
<h:outputText value="#{msgs.pageTitle}"/>
</title>
</head>
<body>
<h:form>
<h:dataTable value="#{customer.all}" var="customer"
styleClass="customers"
headerClass="customersHeader" columnClasses="custid,name">
<h:column>
<f:facet name="header">
<h:outputText value="#{msgs.customerIdHeader}"/>
</f:facet>
<h:outputText value="#{customer.Cust_ID}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{msgs.nameHeader}"/>
</f:facet>
<h:outputText value="#{customer.Name}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{msgs.phoneHeader}"/>
</f:facet>
<h:outputText value="#{customer.Phone_Number}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{msgs.addressHeader}"/>
</f:facet>
<h:outputText value="#{customer.Street_Address}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{msgs.cityHeader}"/>
</f:facet>
<h:outputText value="#{customer.City}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="#{msgs.stateHeader}"/>
</f:facet>
<h:outputText value="#{customer.State}"/>
</h:column>
</h:dataTable>
</h:form>
</body>
</f:view>
</html>

че делать ? помогите с <f:view></f:view> !!!
...
Рейтинг: 0 / 0
DataSource в JSF
    #34197056
fidel_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, и я учу по этой книге, вот пока не дошел до этого примера
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / DataSource в JSF
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]