Problem with GetAttributes()
hi e'body,
I am connecting to MS Active Directory using JNDI.
I connect to the root object and get the context("ldap://123.123.123.123:389/dc=abc,dc=com")
Now using that context , I am trying to get the Attributes of a user Object
Attributes att = ctx.getAttributes("cn=bob,cn=Users")
I get an empty Attributes Set.. Why is that so??
Here the context(ctx) object is of the root.
Now if have the context object of the User itself and try to get the attributes, it return me all the attributes.
GetAttributes can retreive any objects properties under it, Right?
Anybody who's aware of this problem, Please help me.
Regards,
Did you try it with the entire DN of the user (cn=bob,cn=Users,dc=abc,dc=com) whose attributes you are intereasted in? The context object being for the root, it would need the complete name of the node (user) in order for it to be located.
I hope this helps.
Similar Messages
-
Problem with getAttribute() for Booleans
Hi
We have an Application which has undergone all the migration path from JDeveloper 9i beta up to JDeveloper 9.0.5.2 (in several steps certainly :-) ) . Now we try do the next step: we want to upgrade from 9.0.5.2 to 10.1.3.
But there is a problem with Boolean attributes:
Since there were some problems with Booleans in elder versions of JDeveloper all our Booleans are stored in Attributes of type VARCHAR2(1) ("1" is TRUE, "0" is FALSE). This worked well since 9.0.5.2. But now in JDeveloper 10.1.3 all Boolean Attributes return FALSE, no matter of the content of the database. Since we do not want to convert our data in the database I am now looking for a way, how I can enable this Application to correctly read Booleans from VARCHAR2(1) .
I've already found some classes like "TypeFactory" and "TypeMapEntries", and I've found the Property "jbo.TypeMapEntries". But I've found no clue, how to use them for my problem.
Can anyone give me a hint?
Thanks in advance
Frank BrandstetterYou have several problems:
1. On-Insert will ONLY run if you have created a new record in a base-table block. If you haven't done that, then the POST command will not cause it to run.
2. Select for update without a "no wait" will lock records for the first form, but when the second form tries this, it will hit the ORA-00054 exception, and will NOT wait. The only way you could make it wait is to issue an UPDATE sql command, which is not such a good way to go.
All POST does is issues SQL insert or update commands for any changes the user has made to records in a form's base-table blocks, without following with a Commit command.
Also understand that Commit is the same as Commit_Form, and Rollback is the same as Clear_Form. You should read up on these in the Forms help topics. -
Problem with Configuring Tomcat for running jsp web applications..Plz HELP
I am using Tomcat 5.5 and Jdk 1.5.0_12 and Oracle 10g. I am using jdbc-odbc bridge connection
to connect to the database. I have placed my project folder called
tdm under the webapps folder in Tomcat. This 'tdm' folder consists of
a collection of html pages,jsp pages and images of my project. Also I created a
WEB-INF folderand in that I have lib folder which contains catalina-root.jar
, classes12.jar and nls_charset.jar files. And also in the WEB-INF folder I have the web.xml
file which looks like this
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
Copyright 2004 The Apache Software Foundation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<web-app>
<resource-ref>
<description>Oracle Datasource example</description>
<res-ref-name>jdbc/gdn</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
My Server.xml file in Tomcat\conf folder is as follows
<!-- Example Server Configuration File -->
<!-- Note that component elements are nested corresponding to their
parent-child relationships with each other -->
<!-- A "Server" is a singleton element that represents the entire JVM,
which may contain one or more "Service" instances. The Server
listens for a shutdown command on the indicated port.
Note: A "Server" is not itself a "Container", so you may not
define subcomponents such as "Valves" or "Loggers" at this level.
-->
<Server port="8005" shutdown="SHUTDOWN">
<!-- Comment these entries out to disable JMX MBeans support used for the
administration web application -->
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<!-- Global JNDI resources -->
<GlobalNamingResources>
<!-- Test entry for demonstration purposes -->
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users -->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
<Resource name="jdbc/gdn" auth="Container"
type="javax.sql.DataSource" driverClassName="sun.jdbc.odbc.JdbcOdbcDriver"
url="jdbc:odbc:gdn"
username="system" password="tiger" maxActive="20" maxIdle="10"
maxWait="-1"/>
</GlobalNamingResources>
<!-- A "Service" is a collection of one or more "Connectors" that share
a single "Container" (and therefore the web applications visible
within that Container). Normally, that Container is an "Engine",
but this is not required.
Note: A "Service" is not itself a "Container", so you may not
define subcomponents such as "Valves" or "Loggers" at this level.
-->
<!-- Define the Tomcat Stand-Alone Service -->
<Service name="Catalina">
<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Each Connector passes requests on to the
associated "Container" (normally an Engine) for processing.
By default, a non-SSL HTTP/1.1 Connector is established on port 8080.
You can also enable an SSL HTTP/1.1 Connector on port 8443 by
following the instructions below and uncommenting the second Connector
entry. SSL support requires the following steps (see the SSL Config
HOWTO in the Tomcat 5 documentation bundle for more detailed
instructions):
* If your JDK version 1.3 or prior, download and install JSSE 1.0.2 or
later, and put the JAR files into "$JAVA_HOME/jre/lib/ext".
* Execute:
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA (Windows)
$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA (Unix)
with a password value of "changeit" for both the certificate and
the keystore itself.
By default, DNS lookups are enabled when a web application calls
request.getRemoteHost(). This can have an adverse impact on
performance, so you can disable it by setting the
"enableLookups" attribute to "false". When DNS lookups are disabled,
request.getRemoteHost() will return the String version of the
IP address of the remote client.
-->
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector
port="5050" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
<!-- Note : To disable connection timeouts, set connectionTimeout value
to 0 -->
<!-- Note : To use gzip compression you could set the following properties :
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml"
-->
<!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
<!--
<Connector port="8443"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
-->
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
<!-- Define a Proxied HTTP/1.1 Connector on port 8082 -->
<!-- See proxy documentation for more information about using this. -->
<!--
<Connector port="8082"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" acceptCount="100" connectionTimeout="20000"
proxyPort="80" disableUploadTimeout="true" />
-->
<!-- An Engine represents the entry point (within Catalina) that processes
every request. The Engine implementation for Tomcat stand alone
analyzes the HTTP headers included with the request, and passes them
on to the appropriate Host (virtual host). -->
<!-- You should set jvmRoute to support load-balancing via AJP ie :
<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">
-->
<!-- Define the top level container in our container hierarchy -->
<Engine name="Catalina" defaultHost="localhost">
<!-- The request dumper valve dumps useful debugging information about
the request headers and cookies that were received, and the response
headers and cookies that were sent, for all requests received by
this instance of Tomcat. If you care only about requests to a
particular virtual host, or a particular application, nest this
element inside the corresponding <Host> or <Context> entry instead.
For a similar mechanism that is portable to all Servlet 2.4
containers, check out the "RequestDumperFilter" Filter in the
example application (the source for this filter may be found in
"$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters").
Request dumping is disabled by default. Uncomment the following
element to enable it. -->
<!--
<Valve className="org.apache.catalina.valves.RequestDumperValve"/>
-->
<!-- Because this Realm is here, an instance will be shared globally -->
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<!-- Comment out the old realm but leave here for now in case we
need to go back quickly -->
<!--
<Realm className="org.apache.catalina.realm.MemoryRealm" />
-->
<!-- Replace the above Realm with one of the following to get a Realm
stored in a database and accessed via JDBC -->
<!--
<Realm className="org.apache.catalina.realm.JDBCRealm"
driverName="org.gjt.mm.mysql.Driver"
connectionURL="jdbc:mysql://localhost/authority"
connectionName="test" connectionPassword="test"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name" />
-->
<!--
<Realm className="org.apache.catalina.realm.JDBCRealm"
driverName="oracle.jdbc.driver.OracleDriver"
connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL"
connectionName="scott" connectionPassword="tiger"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name" />
-->
<!--
<Realm className="org.apache.catalina.realm.JDBCRealm"
driverName="sun.jdbc.odbc.JdbcOdbcDriver"
connectionURL="jdbc:odbc:CATALINA"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name" />
-->
<!-- Define the default virtual host
Note: XML Schema validation will not work with Xerces 2.2.
-->
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<!-- Defines a cluster for this node,
By defining this element, means that every manager will be changed.
So when running a cluster, only make sure that you have webapps in there
that need to be clustered and remove the other ones.
A cluster has the following parameters:
className = the fully qualified name of the cluster class
name = a descriptive name for your cluster, can be anything
mcastAddr = the multicast address, has to be the same for all the nodes
mcastPort = the multicast port, has to be the same for all the nodes
mcastBindAddr = bind the multicast socket to a specific address
mcastTTL = the multicast TTL if you want to limit your broadcast
mcastSoTimeout = the multicast readtimeout
mcastFrequency = the number of milliseconds in between sending a "I'm alive" heartbeat
mcastDropTime = the number a milliseconds before a node is considered "dead" if no heartbeat is received
tcpThreadCount = the number of threads to handle incoming replication requests, optimal would be the same amount of threads as nodes
tcpListenAddress = the listen address (bind address) for TCP cluster request on this host,
in case of multiple ethernet cards.
auto means that address becomes
InetAddress.getLocalHost().getHostAddress()
tcpListenPort = the tcp listen port
tcpSelectorTimeout = the timeout (ms) for the Selector.select() method in case the OS
has a wakup bug in java.nio. Set to 0 for no timeout
printToScreen = true means that managers will also print to std.out
expireSessionsOnShutdown = true means that
useDirtyFlag = true means that we only replicate a session after setAttribute,removeAttribute has been called.
false means to replicate the session after each request.
false means that replication would work for the following piece of code: (only for SimpleTcpReplicationManager)
<%
HashMap map = (HashMap)session.getAttribute("map");
map.put("key","value");
%>
replicationMode = can be either 'pooled', 'synchronous' or 'asynchronous'.
* Pooled means that the replication happens using several sockets in a synchronous way. Ie, the data gets replicated, then the request return. This is the same as the 'synchronous' setting except it uses a pool of sockets, hence it is multithreaded. This is the fastest and safest configuration. To use this, also increase the nr of tcp threads that you have dealing with replication.
* Synchronous means that the thread that executes the request, is also the
thread the replicates the data to the other nodes, and will not return until all
nodes have received the information.
* Asynchronous means that there is a specific 'sender' thread for each cluster node,
so the request thread will queue the replication request into a "smart" queue,
and then return to the client.
The "smart" queue is a queue where when a session is added to the queue, and the same session
already exists in the queue from a previous request, that session will be replaced
in the queue instead of replicating two requests. This almost never happens, unless there is a
large network delay.
-->
<!--
When configuring for clustering, you also add in a valve to catch all the requests
coming in, at the end of the request, the session may or may not be replicated.
A session is replicated if and only if all the conditions are met:
1. useDirtyFlag is true or setAttribute or removeAttribute has been called AND
2. a session exists (has been created)
3. the request is not trapped by the "filter" attribute
The filter attribute is to filter out requests that could not modify the session,
hence we don't replicate the session after the end of this request.
The filter is negative, ie, anything you put in the filter, you mean to filter out,
ie, no replication will be done on requests that match one of the filters.
The filter attribute is delimited by ;, so you can't escape out ; even if you wanted to.
filter=".*\.gif;.*\.js;" means that we will not replicate the session after requests with the URI
ending with .gif and .js are intercepted.
The deployer element can be used to deploy apps cluster wide.
Currently the deployment only deploys/undeploys to working members in the cluster
so no WARs are copied upons startup of a broken node.
The deployer watches a directory (watchDir) for WAR files when watchEnabled="true"
When a new war file is added the war gets deployed to the local instance,
and then deployed to the other instances in the cluster.
When a war file is deleted from the watchDir the war is undeployed locally
and cluster wide
-->
<!--
<Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
managerClassName="org.apache.catalina.cluster.session.DeltaManager"
expireSessionsOnShutdown="false"
useDirtyFlag="true"
notifyListenersOnReplication="true">
<Membership
className="org.apache.catalina.cluster.mcast.McastService"
mcastAddr="228.0.0.4"
mcastPort="45564"
mcastFrequency="500"
mcastDropTime="3000"/>
<Receiver
className="org.apache.catalina.cluster.tcp.ReplicationListener"
tcpListenAddress="auto"
tcpListenPort="4001"
tcpSelectorTimeout="100"
tcpThreadCount="6"/>
<Sender
className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
replicationMode="pooled"
ackTimeout="15000"/>
<Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
filter=".*\.gif;.*\.js;.*\.jpg;.*\.htm;.*\.html;.*\.txt;"/>
<Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
</Cluster>
-->
<!-- Normally, users must authenticate themselves to each web app
individually. Uncomment the following entry if you would like
a user to be authenticated the first time they encounter a
resource protected by a security constraint, and then have that
user identity maintained across all web applications contained
in this virtual host. -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all requests for this virtual host. By
default, log files are created in the "logs" directory relative to
$CATALINA_HOME. If you wish, you can specify a different
directory with the "directory" attribute. Specify either a relative
(to $CATALINA_HOME) or absolute path to the desired directory.
-->
<!--
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="common" resolveHosts="false"/>
-->
<!-- Access log processes all requests for this virtual host. By
default, log files are created in the "logs" directory relative to
$CATALINA_HOME. If you wish, you can specify a different
directory with the "directory" attribute. Specify either a relative
(to $CATALINA_HOME) or absolute path to the desired directory.
This access log implementation is optimized for maximum performance,
but is hardcoded to support only the "common" and "combined" patterns.
-->
<!--
<Valve className="org.apache.catalina.valves.FastCommonAccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="common" resolveHosts="false"/>
-->
<Context path="/tdm" docBase="tdm" debug="0" reloadable="true" />
</Host>
</Engine>
</Service>
</Server>
I have set the context path to /tdm in the server.xml file. Should this be placed in context.xml?
My first page in the project is called Homepage.html. To start my project I give http://localhost:5050/tdm/homepage.html
in a browser. Here I accept a username and password from the user and then do the validation in
a valid.jsp file, where I connect to the database and check and use jsp:forward to go to next pages
accordingly. However when I enter the username and password and click Go in the homepage, nothing is
displayed on the next page. The URL in the browser says valid.jsp but a blank screen appears.
WHY DOES IT HAPPEN SO? DOES IT MEAN THAT TOMCAT IS NOT RECOGNIZING JAVA IN MY SYSTEM OR IS IT A PROBLEM
WITH THE DATABASE CONNECTION OR SOMETHING ELSE? I FEEL THAT TOMCAT IS NOT EXECUTING JSP COMMANDS?
IS IT POSSIBLE?WHY WILL THIS HAPPEN?
I set the JAVA_HOME and CATALINA_HOME environment to the jdk and tomcat folders resp.
Is there any other thing that I need to set in classpath? Should I have my project as a
WAR file in the webapps of TOMCAT or just a folder i.e. directory structure will fine?I am using Tomcat 5.5 and Jdk 1.5.0_12 and Oracle 10g. I am using jdbc-odbc bridge connection
to connect to the database. I have placed my project folder called
tdm under the webapps folder in Tomcat. This 'tdm' folder consists of
a collection of html pages,jsp pages and images of my project. Also I created a
WEB-INF folderand in that I have lib folder which contains catalina-root.jar
, classes12.jar and nls_charset.jar files. And also in the WEB-INF folder I have the web.xml
file which looks like this
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
Copyright 2004 The Apache Software Foundation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<web-app>
<resource-ref>
<description>Oracle Datasource example</description>
<res-ref-name>jdbc/gdn</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
My Server.xml file in Tomcat\conf folder is as follows
<!-- Example Server Configuration File -->
<!-- Note that component elements are nested corresponding to their
parent-child relationships with each other -->
<!-- A "Server" is a singleton element that represents the entire JVM,
which may contain one or more "Service" instances. The Server
listens for a shutdown command on the indicated port.
Note: A "Server" is not itself a "Container", so you may not
define subcomponents such as "Valves" or "Loggers" at this level.
-->
<Server port="8005" shutdown="SHUTDOWN">
<!-- Comment these entries out to disable JMX MBeans support used for the
administration web application -->
<Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<!-- Global JNDI resources -->
<GlobalNamingResources>
<!-- Test entry for demonstration purposes -->
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users -->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
<Resource name="jdbc/gdn" auth="Container"
type="javax.sql.DataSource" driverClassName="sun.jdbc.odbc.JdbcOdbcDriver"
url="jdbc:odbc:gdn"
username="system" password="tiger" maxActive="20" maxIdle="10"
maxWait="-1"/>
</GlobalNamingResources>
<!-- A "Service" is a collection of one or more "Connectors" that share
a single "Container" (and therefore the web applications visible
within that Container). Normally, that Container is an "Engine",
but this is not required.
Note: A "Service" is not itself a "Container", so you may not
define subcomponents such as "Valves" or "Loggers" at this level.
-->
<!-- Define the Tomcat Stand-Alone Service -->
<Service name="Catalina">
<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Each Connector passes requests on to the
associated "Container" (normally an Engine) for processing.
By default, a non-SSL HTTP/1.1 Connector is established on port 8080.
You can also enable an SSL HTTP/1.1 Connector on port 8443 by
following the instructions below and uncommenting the second Connector
entry. SSL support requires the following steps (see the SSL Config
HOWTO in the Tomcat 5 documentation bundle for more detailed
instructions):
* If your JDK version 1.3 or prior, download and install JSSE 1.0.2 or
later, and put the JAR files into "$JAVA_HOME/jre/lib/ext".
* Execute:
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA (Windows)
$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA (Unix)
with a password value of "changeit" for both the certificate and
the keystore itself.
By default, DNS lookups are enabled when a web application calls
request.getRemoteHost(). This can have an adverse impact on
performance, so you can disable it by setting the
"enableLookups" attribute to "false". When DNS lookups are disabled,
request.getRemoteHost() will return the String version of the
IP address of the remote client.
-->
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
<Connector
port="5050" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
<!-- Note : To disable connection timeouts, set connectionTimeout value
to 0 -->
<!-- Note : To use gzip compression you could set the following properties :
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml"
-->
<!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
<!--
<Connector port="8443"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
-->
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
<!-- Define a Proxied HTTP/1.1 Connector on port 8082 -->
<!-- See proxy documentation for more information about using this. -->
<!--
<Connector port="8082"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" acceptCount="100" connectionTimeout="20000"
proxyPort="80" disableUploadTimeout="true" />
-->
<!-- An Engine represents the entry point (within Catalina) that processes
every request. The Engine implementation for Tomcat stand alone
analyzes the HTTP headers included with the request, and passes them
on to the appropriate Host (virtual host). -->
<!-- You should set jvmRoute to support load-balancing via AJP ie :
<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">
-->
<!-- Define the top level container in our container hierarchy -->
<Engine name="Catalina" defaultHost="localhost">
<!-- The request dumper valve dumps useful debugging information about
the request headers and cookies that were received, and the response
headers and cookies that were sent, for all requests received by
this instance of Tomcat. If you care only about requests to a
particular virtual host, or a particular application, nest this
element inside the corresponding <Host> or <Context> entry instead.
For a similar mechanism that is portable to all Servlet 2.4
containers, check out the "RequestDumperFilter" Filter in the
example application (the source for this filter may be found in
"$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters").
Request dumping is disabled by default. Uncomment the following
element to enable it. -->
<!--
<Valve className="org.apache.catalina.valves.RequestDumperValve"/>
-->
<!-- Because this Realm is here, an instance will be shared globally -->
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<!-- Comment out the old realm but leave here for now in case we
need to go back quickly -->
<!--
<Realm className="org.apache.catalina.realm.MemoryRealm" />
-->
<!-- Replace the above Realm with one of the following to get a Realm
stored in a database and accessed via JDBC -->
<!--
<Realm className="org.apache.catalina.realm.JDBCRealm"
driverName="org.gjt.mm.mysql.Driver"
connectionURL="jdbc:mysql://localhost/authority"
connectionName="test" connectionPassword="test"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name" />
-->
<!--
<Realm className="org.apache.catalina.realm.JDBCRealm"
driverName="oracle.jdbc.driver.OracleDriver"
connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL"
connectionName="scott" connectionPassword="tiger"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name" />
-->
<!--
<Realm className="org.apache.catalina.realm.JDBCRealm"
driverName="sun.jdbc.odbc.JdbcOdbcDriver"
connectionURL="jdbc:odbc:CATALINA"
userTable="users" userNameCol="user_name" userCredCol="user_pass"
userRoleTable="user_roles" roleNameCol="role_name" />
-->
<!-- Define the default virtual host
Note: XML Schema validation will not work with Xerces 2.2.
-->
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<!-- Defines a cluster for this node,
By defining this element, means that every manager will be changed.
So when running a cluster, only make sure that you have webapps in there
that need to be clustered and remove the other ones.
A cluster has the following parameters:
className = the fully qualified name of the cluster class
name = a descriptive name for your cluster, can be anything
mcastAddr = the multicast address, has to be the same for all the nodes
mcastPort = the multicast port, has to be the same for all the nodes
mcastBindAddr = bind the multicast socket to a specific address
mcastTTL = the multicast TTL if you want to limit your broadcast
mcastSoTimeout = the multicast readtimeout
mcastFrequency = the number of milliseconds in between sending a "I'm alive" heartbeat
mcastDropTime = the number a milliseconds before a node is considered "dead" if no heartbeat is received
tcpThreadCount = the number of threads to handle incoming replication requests, optimal would be the same amount of threads as nodes
tcpListenAddress = the listen address (bind address) for TCP cluster request on this host,
in case of multiple ethernet cards.
auto means that address becomes
InetAddress.getLocalHost().getHostAddress()
tcpListenPort = the tcp listen port
tcpSelectorTimeout = the timeout (ms) for the Selector.select() method in case the OS
has a wakup bug in java.nio. Set to 0 for no timeout
printToScreen = true means that managers will also print to std.out
expireSessionsOnShutdown = true means that
useDirtyFlag = true means that we only replicate a session after setAttribute,removeAttribute has been called.
false means to replicate the session after each request.
false means that replication would work for the following piece of code: (only for SimpleTcpReplicationManager)
<%
HashMap map = (HashMap)session.getAttribute("map");
map.put("key","value");
%>
replicationMode = can be either 'pooled', 'synchronous' or 'asynchronous'.
* Pooled means that the replication happens using several sockets in a synchronous way. Ie, the data gets replicated, then the request return. This is the same as the 'synchronous' setting except it uses a pool of sockets, hence it is multithreaded. This is the fastest and safest configuration. To use this, also increase the nr of tcp threads that you have dealing with replication.
* Synchronous means that the thread that executes the request, is also the
thread the replicates the data to the other nodes, and will not return until all
nodes have received the information.
* Asynchronous means that there is a specific 'sender' thread for each cluster node,
so the request thread will queue the replication request into a "smart" queue,
and then return to the client.
The "smart" queue is a queue where when a session is added to the queue, and the same session
already exists in the queue from a previous request, that session will be replaced
in the queue instead of replicating two requests. This almost never happens, unless there is a
large network delay.
-->
<!--
When configuring for clustering, you also add in a valve to catch all the requests
coming in, at the end of the request, the session may or may not be replicated.
A session is replicated if and only if all the conditions are met:
1. useDirtyFlag is true or setAttribute or removeAttribute has been called AND
2. a session exists (has been created)
3. the request is not trapped by the "filter" attribute
The filter attribute is to filter out requests that could not modify the session,
hence we don't replicate the session after the end of this request.
The filter is negative, ie, anything you put in the filter, you mean to filter out,
ie, no replication will be done on requests that match one of the filters.
The filter attribute is delimited by ;, so you can't escape out ; even if you wanted to.
filter=".*\.gif;.*\.js;" means that we will not replicate the session after requests with the URI
ending with .gif and .js are intercepted.
The deployer element can be used to deploy apps cluster wide.
Currently the deployment only deploys/undeploys to working members in the cluster
so no WARs are copied upons startup of a broken node.
The deployer watches a directory (watchDir) for WAR files when watchEnabled="true"
When a new war file is added the war gets deployed to the local instance,
and then deployed to the other instances in the cluster.
When a war file is deleted from the watchDir the war is undeployed locally
and cluster wide
-->
<!--
<Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
managerClassName="org.apache.catalina.cluster.session.DeltaManager"
expireSessionsOnShutdown="false"
useDirtyFlag="true"
notifyListenersOnReplication="true">
<Membership
className="org.apache.catalina.cluster.mcast.McastService"
mcastAddr="228.0.0.4"
mcastPort="45564"
mcastFrequency="500"
mcastDropTime="3000"/>
<Receiver
className="org.apache.catalina.cluster.tcp.ReplicationListener"
tcpListenAddress="auto"
tcpListenPort="4001"
tcpSelectorTimeout="100"
tcpThreadCount="6"/>
<Sender
className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
replicationMode="pooled"
ackTimeout="15000"/>
<Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
filter=".*\.gif;.*\.js;.*\.jpg;.*\.htm;.*\.html;.*\.txt;"/>
<Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
</Cluster>
-->
<!-- Normally, users must authenticate themselves to each web app
individually. Uncomment the following entry if you would like
a user to be authenticated the first time they encounter a
resource protected by a security constraint, and then have that
user identity maintained across all web applications contained
in this virtual host. -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all requests for this virtual host. By
default, log files are created in the "logs" directory relative to
$CATALINA_HOME. If you wish, you can specify a different
directory with the "directory" attribute. Specify either a relative
(to $CATALINA_HOME) or absolute path to the desired directory.
-->
<!--
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="common" resolveHosts="false"/>
-->
<!-- Access log processes all requests for this virtual host. By
default, log files are created in the "logs" directory relative to
$CATALINA_HOME. If you wish, you can specify a different
directory with the "directory" attribute. Specify either a relative
(to $CATALINA_HOME) or absolute path to the desired directory.
This access log implementation is optimized for maximum performance,
but is hardcoded to support only the "common" and "combined" patterns.
-->
<!--
<Valve className="org.apache.catalina.valves.FastCommonAccessLogValve"
directory="logs" prefix="localhost_access_log." suffix=".txt"
pattern="common" resolveHosts="false"/>
-->
<Context path="/tdm" docBase="tdm" debug="0" reloadable="true" />
</Host>
</Engine>
</Service>
</Server>
I have set the context path to /tdm in the server.xml file. Should this be placed in context.xml?
My first page in the project is called Homepage.html. To start my project I give http://localhost:5050/tdm/homepage.html
in a browser. Here I accept a username and password from the user and then do the validation in
a valid.jsp file, where I connect to the database and check and use jsp:forward to go to next pages
accordingly. However when I enter the username and password and click Go in the homepage, nothing is
displayed on the next page. The URL in the browser says valid.jsp but a blank screen appears.
WHY DOES IT HAPPEN SO? DOES IT MEAN THAT TOMCAT IS NOT RECOGNIZING JAVA IN MY SYSTEM OR IS IT A PROBLEM
WITH THE DATABASE CONNECTION OR SOMETHING ELSE? I FEEL THAT TOMCAT IS NOT EXECUTING JSP COMMANDS?
IS IT POSSIBLE?WHY WILL THIS HAPPEN?
I set the JAVA_HOME and CATALINA_HOME environment to the jdk and tomcat folders resp.
Is there any other thing that I need to set in classpath? Should I have my project as a
WAR file in the webapps of TOMCAT or just a folder i.e. directory structure will fine? -
Problem with JTextPane and StateInvariantError
Hi. I am having a problem with JTextPanes and changing only certain text to bold. I am writing a chat program and would like to allow users to make certain text in their entries bold. The best way I can think of to do this is to add <b> and </b> tags to the beginning and end of any text that is to be bold. When the other client receives the message, the program will take out all of the <b> and </b> tags and display any text between them as bold (or italic with <i> and </i>). I've searched the forums a lot and figured out several ways to make the text bold, and several ways to determine which text is bold before sending the text, but none that work together. Currently, I add the bold tags with this code: (note: messageDoc is a StyledDocument and messageText is a JTextPane)
public String getMessageText() {
String text = null;
boolean bold = false, italic = false;
for (int i = 0; i < messageDoc.getLength(); i++) {
messageText.setCaretPosition(i);
if (StyleConstants.isBold(messageDoc.getCharacterElement(i).getAttributes()) && !bold) {
bold = true;
if (text != null) {
text = text + "<b>";
else {
text = "<b>";
else if (StyleConstants.isBold(messageDoc.getCharacterElement(i).getAttributes()) && bold) {
// Do nothing
else if (!StyleConstants.isBold(messageDoc.getCharacterElement(i).getAttributes()) && bold) {
bold = false;
if (text != null) {
text = text + "</b>";
else {
text = "</b>";
try {
if (text != null) {
text = text + messageDoc.getText(i,1);
else {
text = messageDoc.getText(i, 1);
catch (BadLocationException e) {
System.out.println("An error occurred while getting the text from the message document");
e.printStackTrace();
return text;
} // end getMessageText()When the message is sent to the other client, the program searches through the received message and changes the text between the bold tags to bold. This seems as if it should work, but as soon as I click on the bold button, I get a StateInvariantError. The code for my button is:
public void actionPerformed(ActionEvent evt) {
if (evt.getSource() == bold) {
MutableAttributeSet bold = new SimpleAttributeSet();
StyleConstants.setBold(bold, true);
messageText.getStyledDocument().setCharacterAttributes(messageText.getSelectionStart(), messageText.getSelectionStart() - messageText.getSelectionEnd() - 1, bold, false);
} //end actionPerformed()Can anyone help me to figure out why this error is being thrown? I have searched for a while to figure out this way of doing what I'm trying to do and I've found out that a StateInvariantError has been reported as a bug in several different circumstances but not in relation to this. Or, if there is a better way to add and check the style of the text that would be great as well. Any help is much appreciated, thanks in advance.Swing related questions should be posted in the Swing forum.
Can't tell from you code what the problem is because I don't know the context of how each method is invoked. But it would seem like you are trying to query the data in the Document while the Document is being updated. Try wrapping the getMessageText() method is a SwingUtilities.invokeLater().
There is no need to write custom code for a Bold Action you can just use:
JButton bold = new JButton( new StyledEditorKit.BoldAction() );Also your code to build the text String is not very efficient. You should not be using string concatenation to append text to the string. You should be using a StringBuffer or StringBuilder. -
Problems with Java and Business Objects
<p>Hello everybody,<br /><br />I'm new in BusinessObjects/Crystal Report. Now, I have some problems with Business Objects for Java (Business Objects XI Release 2 Developer).</p><p> </p><p>1) I create a report in the report designer. This report has a parameterfield. Before I run this report within a jsp web application I want fill the parameterfield with some values from the database. I found the following code snippet for this problem in your forum. But it don't works right, because it occurs a simple input field instead of a combo box with my database values. Where is my mistake? I need the combo box! (In debug mode I saw that the parameterfield was filled with my data!)</p><p><%@page import="com.crystaldecisions.report.web.viewer.CrystalReportViewer,com.crystaldecisions.sdk.occa.report.application.ReportClientDocument,<br />com.crystaldecisions.sdk.occa.report.application.OpenReportOptions,<br />com.crystaldecisions.sdk.occa.report.lib.ReportSDKExceptionBase,<br />java.io.IOException,<br />java.sql.Connection,<br />java.sql.DriverManager,<br />java.sql.ResultSet,<br />java.sql.SQLException,<br />java.sql.Statement,<br />java.util.Locale,<br />com.crystaldecisions.sdk.occa.report.application.DataDefController,<br />com.crystaldecisions.sdk.occa.report.data.FieldDisplayNameType,<br />com.crystaldecisions.sdk.occa.report.data.ParameterField,<br />com.crystaldecisions.sdk.occa.report.data.ParameterFieldDiscreteValue,<br />com.crystaldecisions.sdk.occa.report.data.Values,<br />com.crystaldecisions.sdk.occa.report.reportsource.IReportSource"%><%<br /><br /> try {<br /><br /> String reportName = "avoParameterfeld.rpt";<br /> ReportClientDocument clientDoc = (ReportClientDocument) session.getAttribute(reportName);<br /><br /> if (clientDoc == null) {<br /> // Report can be opened from the relative location specified in the CRConfig.xml, or the report location<br /> // tag can be removed to open the reports as Java resources or using an absolute path<br /> // (absolute path not recommended for Web applications).<br /><br /> clientDoc = new ReportClientDocument();<br /> clientDoc.setReportAppServer("inproc:jrc");<br /> // Open report<br /> clientDoc.open(reportName, OpenReportOptions._openAsReadOnly);<br /><br /> // Connection Info for fetching the resultSet<br /> String connectStr = "jdbc:oracle:thin:@it1srv19:1521:itoracle";<br /> String driverName = "oracle.jdbc.driver.OracleDriver";<br /> String userName = "user"; <br /> String password = "password"; <br /><br /> // TODO: Ensure this query is valid in your database. An exception will be thrown otherwise.<br /> String query = "SELECT DISTINCT AVONR FROM MBDEADM.AVO ORDER BY AVONR";<br /> ResultSet paramData = null;<br /> <br /> //we will now pass the resultset to the parameter to use as Default Values<br /> String parameterName = "AVONR2";<br /> int colIndex = 1; //this is the column in the ResultSet to use as the values<br /> <br />// Load JDBC driver for the database that will be queried <br /> Class.forName(driverName);<br /><br /> Connection connection = DriverManager.getConnection(connectStr, userName, password);<br /> Statement statement = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE , ResultSet.CONCUR_READ_ONLY);<br /> <br /> paramData = statement.executeQuery(query);<br /> <br /> DataDefController dataDefController = clientDoc.getDataDefController();<br /> <br /> ParameterField origParamField = (ParameterField)dataDefController.getDataDefinition().getParameterFields().findField(parameterName, FieldDisplayNameType.fieldName, Locale.getDefault());<br /> ParameterField newParamField = (ParameterField)origParamField.clone(true);<br /> <br /> Values newVals = (Values)newParamField.getDefaultValues().clone(true);<br /> newVals.clear(); <br /> paramData.first();<br /> while(!paramData.isLast()){<br /> ParameterFieldDiscreteValue value = new ParameterFieldDiscreteValue();<br /> value.setValue(paramData.getObject(colIndex));<br /> newVals.add(value);<br /> paramData.next();<br /> }<br /> <br /> dataDefController.getParameterFieldController().modify(origParamField, newParamField);<br /> // Store the report document in session<br /> session.setAttribute(reportName, clientDoc);<br /><br /> }<br /><br /> // ****** BEGIN CONNECT CRYSTALREPORTPAGEVIEWER SNIPPET **************** <br /> {<br /> // Create the CrystalReportViewer object<br /> CrystalReportViewer crystalReportPageViewer = new CrystalReportViewer();<br /><br /> // set the reportsource property of the viewer<br /> IReportSource reportSource = clientDoc.getReportSource(); <br /> crystalReportPageViewer.setReportSource(reportSource);<br /><br /> // set viewer attributes<br /> crystalReportPageViewer.setOwnPage(true);<br /> crystalReportPageViewer.setOwnForm(true);<br /><br /> // Apply the viewer preference attributes<br /><br /> // Process the report<br /> crystalReportPageViewer.processHttpRequest(request, response, application, null);<br /><br /> }<br /> // ****** END CONNECT CRYSTALREPORTPAGEVIEWER SNIPPET **************** <br /><br /> } catch (ReportSDKExceptionBase e) {<br /> out.println(e);<br /> }<br /> <br />%><br /><br /><br /><br />2) In a other report I tried to update the data source used by the report at runtime. I used the method 'setDataSource(ResultSet rs, String oldTableAlias, String newTableAlias)' of the 'DatabaseController'. I got a message like this: 'At present in Java reporting Component does not implement'. I use JRC and the docs (http://support.businessobjects.com/global/interactive/xi/om/JRC/default.html) show me this method. Is it not possible to change the data at runtime in JRC? (I tried it with the methods 'setDataSource(IXMLDataSet rs, String oldTableAlias, String newTableAlias)', 'setDataSource(Object newds)', 'setDataSource(IDataSet ds, String oldTableAlias, String newTableAlias)', too. But the result was the same!)<br /><br /><br /><br />3) I tried to use Business Objects in JSF framework (Ver MyFaces 1.1.3) with the same samples above. But in JSF nothing work! I got the following exception. What is my problem? Can you get me a tutorial for jsf/BusinessObjects?<br /><br />08:21:43,165 ERROR [[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception<br />javax.faces.FacesException: com.businessobjects.reports.sdk.JRCCommunicationAdapter<br /> at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:435)<br /> at org.apache.myfaces.application.jsp.JspTilesViewHandlerImpl.dispatch(JspTilesViewHandlerImpl.java:233)<br /> at org.apache.myfaces.application.jsp.JspTilesViewHandlerImpl.renderView(JspTilesViewHandlerImpl.java:219)<br /> at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384)<br /> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)<br /> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)<br /> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)<br /> at de.itinformatik.mes.web.filter.SynchronizingFilter.doFilter(SynchronizingFilter.java:42)<br /> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)<br /> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)<br /> at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:144)<br /> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)<br /> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)<br /> at de.itinformatik.mes.web.ajax.aa.AAFilter.doFilter(AAFilter.java:54)<br /> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)<br /> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)<br /> at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)<br /> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)<br /> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)<br /> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)<br /> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)<br /> at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)<br /> at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)<br /> at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)<br /> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)<br /> at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)<br /> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)<br /> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)<br /> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)<br /> at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)<br /> at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)<br /> at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)<br /> at java.lang.Thread.run(Thread.java:595)<br />Caused by: java.lang.ClassCastException: com.businessobjects.reports.sdk.JRCCommunicationAdapter<br /> at com.crystaldecisions.sdk.occa.report.application.ReportClientDocumentState.saveContents(Unknown Source)<br /> at com.crystaldecisions.sdk.occa.report.application.ReportClientDocumentState.save(Unknown Source)<br /> at com.crystaldecisions.xml.serialization.XMLObjectSerializer.save(Unknown Source)<br /> at com.crystaldecisions.sdk.occa.report.application.ReportClientDocument.writeExternal(Unknown Source)<br /> at com.crystaldecisions.sdk.occa.report.application.AdvancedReportSource.writeExternal(Unknown Source)<br /> at com.crystaldecisions.sdk.occa.report.application.NonDCPAdvancedReportSource.writeExternal(Unknown Source)<br /> at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1304)<br /> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1282)<br /> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)<br /> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)<br /> at java.util.Hashtable.writeObject(Hashtable.java:813)<br /> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br /> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br /> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br /> at java.lang.reflect.Method.invoke(Method.java:585)<br /> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:890)<br /> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1333)<br /> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1284)<br /> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)<br /> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1245)<br /> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1069)<br /> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1245)<br /> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1069)<br /> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)<br /> at java.util.ArrayList.writeObject(ArrayList.java:569)<br /> at sun.reflect.GeneratedMethodAccessor669.invoke(Unknown Source)<br /> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br /> at java.lang.reflect.Method.invoke(Method.java:585)<br /> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:890)<br /> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1333)<br /> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1284)<br /> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)<br /> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1245)<br /> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1069)<br /> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)<br /> at java.util.ArrayList.writeObject(ArrayList.java:569)<br /> at sun.reflect.GeneratedMethodAccessor669.invoke(Unknown Source)<br /> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br /> at java.lang.reflect.Method.invoke(Method.java:585)<br /> at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:890)<br /> at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1333)<br /> at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1284)<br /> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)<br /> at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1245)<br /> at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1069)<br /> at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)<br /> at org.apache.myfaces.application.jsp.JspStateManagerImpl.serializeView(JspStateManagerImpl.java:590)<br /> at org.apache.myfaces.application.jsp.JspStateManagerImpl.saveSerializedViewInServletSession(JspStateManagerImpl.java:493)<br /> at org.apache.myfaces.application.jsp.JspStateManagerImpl.saveSerializedView(JspStateManagerImpl.java:332)<br /> at org.apache.myfaces.taglib.core.ViewTag.doAfterBody(ViewTag.java:122)<br /> at org.apache.jsp.testCR_jsp._jspx_meth_f_view_0(org.apache.jsp.testCR_jsp:149)<br /> at org.apache.jsp.testCR_jsp._jspService(org.apache.jsp.testCR_jsp:83)<br /> at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)<br /> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)<br /> at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)<br /> at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)<br /> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)<br /> at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)<br /> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)<br /> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)<br /> at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)<br /> at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)<br /> at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)<br /> at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)<br /> at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:416)<br /> ... 32 more<br /><br /><br />Thanks for your assistance <br /><br />Tosch</p>Which Business Objects are you referring to.
MS .NET has a thing called Business Objects but they only work in .NET. -
Problem with hardware acceleration on HBO GO
I just got a Zotac ZBOX AD02 (AMD E-350 APU w/ Radeon HD 6310) and in general it's working great. However, I have a problem with Flash video on HBO GO. For the first minute or so of steaming video, everything seems perfect. Video is high quality and smooth, CPU is around 50%. Then after a minute or two there will always be some visible video glitch and CPU utilization will jump up to 90-100% and playback becomes extremely choppy. So I'm guessing Flash hardware acceleration is working initially, then something happens that kills the hardware acceleration, and of course the E-350 CPU is not up the task by itself.
The really strange thing is that it seems to be specific to HBO GO. I can stream HD all day long from Amazon Instant Video and Youtube (at least when Youtube is able to dish it out fast enough). And it's definitely not a bandwidth problem. I have Comcast cable (20Mb down), and a bigger computer I have hooked up to another TV has no problem with HBO GO. I think the same problem happens on the bigger computer, but it's faster CPU can overcome the lack of hardware acceleration.
I've got the latest drivers from AMD and the latest Flash player (even tried the 11 beta) and have tried all the main browsers (FF, IE, Chrome), but it's always the same: 1-2 minutes of perfect playback and moderate CPU utilization, then jacked up CPU and choppy playback.
Unfortunately, there doesn't seem to be any way to contact HBO GO directly about this problem (support links just refer you to your cable provider), so I thought I'd give it a shot here. Is anyone else out there having this problem with HBO GO or any other Flash video sites? Any thoughts on what else I could do to track down the root cause?Well, my idea with 10.x on IE didn't really work. Results were not nearly as good as in Firefox, and I'm not willing to use 10.x in my main browser.
However, based on your insight on the wmode=transparent issue, I started playing around with a Greasemonkey script to force wmode=direct, and I think it actually works. I haven't been able to try it at home yet on the problem PC, but here on my work PC (don't tell anyone I'm not actually working) it makes a massive difference in CPU utilization. Without the script CPU is around 80-90% during video playback. When I enable the script it drops to around 20%. The only issue is that I usually have to refresh the page once video playback starts to get wmode=direct to take effect (start video playback, then once the video playback page loads, hit refresh in the browser).
My script is just a modified version of this one I found:
http://userscripts.org/scripts/show/67260
Here's my modified Greasemonkey script (hopefully the forum will allow javascript in posts):
// ==UserScript==
// @name Force flash wmode direct on HBO GO
// @namespace http://userscripts.org/topics/3090#posts-11620
// @description Force flash video playback on HBO GO to use wmode direct to allow hardware acceleration
// @include http://www.hbogo.com/*/video*
// @grant none
// ==/UserScript==
(function ()
nodeInserted();
document.addEventListener("DOMNodeInserted", nodeInserted, false);
function nodeInserted()
for (var objs = document.getElementsByTagName("object"), i = 0, obj; obj = objs[i]; i++)
if (obj.type == 'application/x-shockwave-flash')
var skip = false;
for (var params = obj.getElementsByTagName("param"), j = 0, param; param = params[j]; j++)
if (param.getAttribute("name") == "wmode")
skip = true;
param.setAttribute("value", "direct");
break;
if(skip) continue;
var param = document.createElement("param");
param.setAttribute("name", "wmode");
param.setAttribute("value", "direct");
obj.appendChild(param); -
I am trying to create a clickable county map using Spry. The
following code works in Firefox (2) but fails in Internet Explorer
(6.0)
quote:
<map name="m_original_map" id="m_original_map">
<area shape="{@ashape}" coords="{@acoords}"
title="{@atitle}" alt="{@aalt}" href="#" spry:repeat="spryDataSet"
spry:setrow="spryDataSet" />
</map>
This is a problem with the <area> tag - the following
works fine in IE and Firefox (on the same page as the above)
quote:
<tr spry:repeat="spryDataSet"
spry:setrow="spryDataSet">
<td> shape="{@ashape}" coords="{@acoords}"
title="{@atitle}" alt="{@aalt}"
</td>
</tr>
If I take a line from the output of this table and paste it
into the code, it works fine - ie there's nothing wrong with the
xml or the format of the code, it's just that IE doesn't seem to
like Spry code in the area tag.
I've looked elsewhere on the web for an answer but can't find
one - anybody here tried this?
Regards
JohnHello John,
What really happens and I failed to test because I didn't had
a suitable XML and I thought the results were OK, the <AREA>
from within the region is executed by the IE on load before the
region to come and replace the correct values. In this situation
the value inside the coords attribute only are considered incorrect
and replaced with 0,0,0,0. Because of this when the region finally
arrive to put the correct values do not finds any markup to replace
for the coords attribute so even if all the other regions are put
correctly you can't see them as all the areas are 0,0,0,0.
A work around for this situation is to create a new attribute
for the <AREA> where the spry will come and will insert the
coords correct values. In this sample below I call it spry_coords:
<area shape="{@ashape}" coords="{@acoords}"
spry_coords="{@acoords}" title="{@atitle}" alt="{@aalt}" href="#"
spry:repeat="spryDataSet" spry:setrow="spryDataSet" />
After this we will have using an post update observer to get
the values from the spry_coords filled by Spry and inject them back
into the coords. In this case you should add the following code
just after the spryDataSet definition in your page:
var spryDataSet = new Spry.Data.XMLDataSet("maps.xml",
"gallery/maps/map");
var map = {onPostUpdate: function(){
var els = document.getElementsByTagName('area');
for (var i=0; i < els.length; i++){
if (els
.getAttribute('spry_coords')){
els.coords = els
.getAttribute('spry_coords');
Spry.Data.Region.addObserver('MapLayer',map);
I don't think we will be able to fix this behavior but I will
speak with my colleagues to see if we can insert a note into our
samples.
Regards,
Cristian MARIN -
Problem with this piece of jsp
Hi,
I have a problem with this piece of code, and I dont know why is the error caused:
<% String value=(String)session.getAttribute("add");
*if (value.equals("add")) { * %>
<th>Add quantity</th>
<% } else { %>
<th>Modify quantity</th>
<% } %>
When I debug Apache Tomcat log gives me the NullPointerException error, in the line underlined in bold, but theorically if the sentence "if" is not true it should enter in the "else" part but it doesn`t do, and I dont have the explanation.
I would be very grateful if somebody could help to solve this problem.
Regards.
Edited by: user1577231 on 04-oct-2010 6:33If you get a NullPointerException at that point, then that probably means that value is null.
The easiest way to avoid this NPE is to write "add".equals(value) instead. -
Problem with oracle.jbo.domain.Date
Hi there,
I've a problem with oracle.jbo.domain.Date,
I'm doing this code (this part of code is used in my Session Attribute Listener):
* This method is used to add the session id in the database, whenever user login
public void attributeAdded(HttpSessionBindingEvent hsbe){
if(!hsbe.getName().equals("user")){
return;
AmLogin am = (AmLogin)Configuration.createRootApplicationModule(
"com.ahm.pdt001.am.AmLogin",
"AmLoginLocal");
try{
hsbe.getSession().setAttribute("login", new Date(new Timestamp(
System.currentTimeMillis())));
am.createLogin(hsbe.getValue().toString(), hsbe.getSession().
getAttribute("login").toString());
} catch(Exception e){
e.printStackTrace();
System.out.println("Error insert data user: " + hsbe.getValue());
} finally{
Configuration.releaseRootApplicationModule(am, true);
Everything is running well in Jdev 10.1.3 (I'm using ADF Faces technology), and I'm trying to deploy it on OC4J 10.1.2 and it works. But it raised an error when this part of code is runned.
--------------caused and error------------------------
hsbe.getSession().setAttribute("login", new Date(new Timestamp(
System.currentTimeMillis())));
And this is an error:
javax.faces.FacesException: #{pdt001.loginAction}: javax.faces.el.EvaluationException: java.lang.NoSuchMethodError: oracle.jbo.domain.Date.<init>(Ljava/sql/Timestamp;)V at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:78) at oracle.adf.view.faces.component.UIXCommand.broadcast(UIXCommand.java:211) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:267) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:381) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:75) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:90) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197) at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65) at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:332) at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:16) at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._invokeDoFilter(AdfFacesFilterImpl.java:367) at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl._doFilterImpl(AdfFacesFilterImpl.java:336) at oracle.adfinternal.view.faces.webapp.AdfFacesFilterImpl.doFilter(AdfFacesFilterImpl.java:196) at oracle.adf.view.faces.webapp.AdfFacesFilter.doFilter(AdfFacesFilter.java:87) at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:20) at com.ahm.filter.AhmFilterSession.doFilter(AhmFilterSession.java:45) at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:645) at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:322) at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:790) at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:270) at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.HttpRequestHandler.run(HttpRequestHandler.java:112) at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:186) at java.lang.Thread.run(Thread.java:534)Caused by: javax.faces.el.EvaluationException: java.lang.NoSuchMethodError: oracle.jbo.domain.Date.<init>(Ljava/sql/Timestamp;)V at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:130) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72) ... 23 moreCaused by: java.lang.NoSuchMethodError: oracle.jbo.domain.Date.<init>(Ljava/sql/Timestamp;)V at com.ahm.pdt001.listener.Pdt001AttributeSessionListener.attributeAdded(Pdt001AttributeSessionListener.java:27) at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.0)].server.http.EvermindHttpSession.setAttribute(EvermindHttpSession.java:128) at com.ahm.pdt001.bean.Pdt001Bean.loginAction(Pdt001Bean.java:61) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at com.sun.faces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:126)
Does anybody have the same problem like this? I've used the same method in my previous project to create oracle.jbo.domain.Date with current time using java.sql.Timestamp, but I don't know why this error happened.
Thx,
AndreRe: oracle jbo.domain.Date issues in 10.1.3
Sascha -
Problem with castor xml mapping
Hi,
we have following problem with castor xml mapping.
How to use references in the collections(Hashmap or vector)?
WE have a method called getAttribute map which will return a hashmap consist different type of objects. We want to keep only the
references of objects if that object occurs more than once,instead of keeping the whole object
Following is the the xml mapping file.
<mapping>
<class name="com.opvista.ndtool.core.mos.ManagedObject" identity="Id" auto-complete="false" verify-constructable="false">
<map-to xml="ManagedObject"/>
<field name="Id" get-method="getId" set-method="setId" type="string">
<bind-xml name="Id" node="attribute"/>
</field>
<field name="AttributeMap" type="org.exolab.castor.mapping.MapItem" collection="map" get-method="getAttributeMap">
<bind-xml name="AttributeMap" node="element">
<class name="org.exolab.castor.mapping.MapItem">
<field name="key" type="java.lang.Object">
<bind-xml name="key" node="attribute"/>
</field>
<field name="value" type="java.lang.Object">
<bind-xml name="value" node="element" reference="true"/>
</field>
</class>
</bind-xml>
</field>
</class>
</mapping>
we are using reference=true for the values. But it will throw below exception.
Unable to resolve ID for instance of class 'java.lang.String' due to the following error: Unable to resolve ClassDescriptor.
at org.exolab.castor.xml.Marshaller.getObjectID(Marshaller.java:1988)
at org.exolab.castor.xml.Marshaller.marshal(Marshaller.java:1628)
at org.exolab.castor.xml.Marshaller.marshal(Marshaller.java:1831)
at org.exolab.castor.xml.Marshaller.marshal(Marshaller.java:1814)
at org.exolab.castor.xml.Marshaller.marshal(Marshaller.java:1825)
at org.exolab.castor.xml.Marshaller.marshal(Marshaller.java:821)
Please help us to overcome from this problem?
Thanks,
Dileepfor your ref here is what i think the basic mapping file would look like
<class name="Person">
<map-to xml="person"/>
<field name="name" type="string">
<bind-xml name="name" node="attribute" />
</field>
<field name="age" type="string">
<bind-xml name="age" node="attribute" />
</field>
</class>
<class name="MetaPerson">
<map-to xml="person"/>
<field name="dependents" type="string">
<bind-xml name="dependents" node="attribute" />
</field>
<field name="presentAdd" type="string">
<bind-xml name="present_add " node="attribute" />
</field>
<field name="permanentAdd" type="string">
<bind-xml name="permanent_add " node="attribute" />
</field>
</class>
however i am still not clear as to how i can use the metaperson object in the person class as well as in the mapping file.
hope this gives a better idea abt my problem statement.
Please help me out -
Hi experts,
I am working on an ADF application which was created in year 2000/2001.
I have to make it runnable in the latest Weblogic server. Am using JDeveloper Studio 11.1.1.4.0
Most of the oracle jbo classes have been changed, so am facing a bit difficulty in migrating the application.
My current problem is, I have a class that extends oracle.jbo.html.databeans.RowSetBrowser. In it, data is accessed by the code
oracle.jbo.Row rows[] = super.getRowSet().getAllRowsInRange();
the code is running and i am getting an array with size equal to the number of rows in database table. but on
iterating the array,
Object obj =rows[n].getAttribute(i); gives null.
I tried to print rows[n], and it is giving ViewRow [oracle.jbo.Key[null ]]
Is this due to some problem with initialization of RowSetBrowser?
I am not much experienced in ADF, and finds this hard to solve.
Please someone help me to resolve this.
Thank you,
Deepa.
Edited by: 859210 on May 16, 2011 8:44 PM
Edited by: 859210 on May 20, 2011 3:29 AMHi Timo,
Thank you for responding.
We have used jbo tags in this project.
the jsp code is:
<jsp:useBean id="RowViewer" class="SVR_html.MyRowSetBrowser" scope="request">
<%
RowViewer.initialize(pageContext, con.getDataSourceId() + ".tabParameter");
RowViewer.setReleaseApplicationResources(true);
RowViewer.render();
%>
</jsp:useBean>
where con is a connection object which is an instance of a class that extends oracle.jbo.html.WebBeanImpl
MyRowSetBrowser extends oracle.jbo.html.databeans.RowSetBrowser
Here is the code in MyRowSetBrowser.java (render() method):
AttributeDef aattributedef[] = getDisplayAttributeDefs();
oracle.jbo.Row rows[] = super.getRowSet().getAllRowsInRange();
System.out.println(rows.length); // prints 2
for (int n = 0; n< rows.length;n++)
for (int i = 0; i < aattributedef.length; i++)
Object obj = rows[n].getAttribute(i); // gives null
if(obj!=null){ // fails here
We are showing a table with values from db. Here, aattributedef[] has a length 2 and rows[] also shows length 2.
But i am not able to get the values. The result is, in the browser, it draws an empty table with rows = number of rows in db.
Thank you,
Deepa.
Edited by: 859210 on May 23, 2011 4:55 AM
Edited by: 859210 on May 23, 2011 4:57 AM -
Problem with HttpSessionBindingListener
Hi
I have a problem with HttpSessionBindingListener.
The sesion timeout in web.xml is 10 min.
I open sesion 1 at 10:00 am
I open sesion 2 at 10:05 am
The valueUnbound method is called twice at 10:15 am
The problem is that the valueUnbound is fired only when the last sesion on the site gets timeout. If the example worked well:
The valueUnbound would called would be fired at 10:10 am (sesion 1)
The valueUnbound would called would be fired at 10:15 am (sesion 2)
The example code is very easy:
public class ususs extends java.lang.Object implements HttpSessionBindingListener
private String userName;
public ususs(String userName) {
this.userName=userName;
public void valueBound(HttpSessionBindingEvent event)
userName="kk";
public void valueUnbound(HttpSessionBindingEvent event)
userName="";
... And request.getSession().setAttribute("oUsuss", new ususs("myuser")); when the user logins
ThanksThe ConnectionCloser code:
public void valueBound( HttpSessionBindingEvent event )
System.out.println( "[ConnectionCloser::valueBound]" );
public void valueUnbound( HttpSessionBindingEvent event )
System.out.println( "[ConnectionCloser::valueUnbound]" );
}The login method, session.setAttribute should invoke valueBound in ConnectionCloser
private void login( HttpServletRequest, HttpServletResponse)
throws ServletException, IOException
HttpSession session = request.getSession( true );
Integer oTilr = (Integer)session.getAttribute("tilr");
if( oTilr!=null && oTilr.intValue()>MAX_TILRAUNIR )
villubodTilNotanda( "Of margar ....
else
try
Connection cTengingNotanda = Vinnsla.login(...
session.setAttribute( "tn", cTengingNotanda );
sendaSvar( "Innskr?ning t?kst" );
catch( Exception e )
Integer oT2 = null;
if( oTilr!=null )
oT2 = new Integer(oTilr.intValue()+1 );
else
oT2 = new Integer( 1 );
session.setAttribute( "tilr", oT2 );
villubodTilNotanda( "Sennilega ...", response );
}The logout method: session.invalidate() should invoke valueUnbound in ConnectionCloser
private void logout( HttpServletReq. request, HttpServletResp. r )
throws ServletException, IOException
HttpSession session = request.getSession();
if( session == null )
villubodTilNotanda( "?? ert ekki innskr??(ur)...
else
session.invalidate();
skilabodTilNotanda( "?tskr?ning t?kst", response );
}thanks again,
Atli -
CurrentUISkin problem with LOVs
Hello JheadStart Team
I'm using user selected skin by using menuAdminService and setting adf-faces-config to
<skin-family>#{jhsDynamicMenu.currentUISkin}</skin-family>
but i have problem with LOV's:
Error getting property 'currentUISkin' from bean of type oracle.jheadstart.controller.jsf.bean.DynamicMenuBean: java.lang.RuntimeException: Cannot find JhsModelService, Binding container UsersPageDef data control data provider is null
Kind regradsI was able to reproduce the problem. We will provide a fix in the next patch release.
For now, you can apply the fix yourself as follows:
- create a subclass of oracle.jheadstart.controller.jsf.bean.DynamicMenuBean
- Add member variable to this class:
private String myCurrentUISkin;
- Override method setCurrentUISkin as follows:
public void setCurrentUISkin(String currentUISkin)
this.myCurrentUISkin = currentUISkin;
- Override method getCurrentUISkin() as follows:
public String getCurrentUISkin()
try
if (JhsModelServiceProvider.getInstance().getJhsModelService() !=null)
setCurrentUISkin((String) getCurrentModule().getAttribute(SKIN_ATTRIBUTE_NAME));
catch (Exception e)
// do nothing, return "previous" currentUISkin;
return this.myCurrentUISkin;
- Make a custom template for JhsCommonBeans.vm. In this template replace oracle.jheadstart.controller.jsf.bean.DynamicMenuBean with your own fully qualified class name
- Set the JHS_COMMON_BEANS template key at service level to your custom template
- Generate again.
Steven Davelaar,
JHeadstart Team. -
Problem with access to SipFactory from jsp-pages in JBoss environment
Hello!
I have an installation of the OCMS 10.1.3.3. deployed into a JBoss (jboss-4.0.5.GA) environment. Unfortunately I have a problem with accessing the SipFactory from a jps-page. Encouraged by the "messagesender" example I tried to get an instance of SipFactory from my jsp-page simply by calling:
SipFactory sipFactory = (SipFactory) application.getAttribute(SipServlet.SIP_FACTORY);
But unfortunately there seems to be no attribute "SipServlet.SIP_FACTORY" and I only get a null pointer. I have also tried running that code in the orignal messagesender example but it didn't work either. So I wonder if this should definetely work in a JBoss environment or if this might be a known problem. Is there anything that I could check/do regarding this problem? I suppose there must be an oracle module which should take care of making the SipFactory availabe after it is deployed. Perhaps something went wrong during the deployment?!
Best regards,
TimHi
On JBoss, OCMS does not support converge applications.
I.e the SipFactory can be retrieved from the servlet context when running on OC4J.
Instead the SipFactory can be found in JNDI as described in the Developer's Guide:
"External Access to SIP Servlets
To enable convergent applications between SIP and HTTP, the OCMS Container allows you to get access to the javax.servlet.sip.SipFactory by looking it up through JNDI. The SIP Factory will be registered under the same name as the display name of your SIP servlet as illustrated in Example 2–12. The <display-name> in the sip.xml in this case must be "My sip app".
Example 2–12 Accessing the Data for a SIP Session through JNDI
InitialContext ic = new InitialContext();
SipFactory sipFactory = (SipFactory)ic.lookup("sip/My sip app");"
Cheers
Lucas Persson -
Problem with a Constructor of a backingBean
Hello there!, i have a problem with this code , on a constructor of backingBean
public Login() {
System.out.println("New instance!!");
FacesContext fc = FacesContext.getCurrentInstance();
String sessionId = fc.getExternalContext().getRequestParameterMap().get("id");
System.out.println("Session ID :" + sessionId);
if(sessionId.equals("1"){
UIComponent it2 = (UIComponent)fc.getViewRoot().findComponent("it2");
it2.getAttributes().put("value", "Hello World");
}The error :
<30-12-2009 06:12:10 PM BOT> <Error> <HTTP> <BEA-101020>
<[ServletContext@17783620[app:LoginJSF module:LoginJSF-ViewController-context-root path:/LoginJSF-ViewController-context-root spec-version:2.5]]
Servlet failed with Exception oracle.mds.exception.MDSRuntimeException: MDS-00168:
Any help?hi Frank
See forum thread "JDeveloper 11g Handbook : Chapter 10 : MDSRuntimeException MDS-00168" about a (possibly related) MDSRuntimeException (MDS-00168) with a reproducible scenario.
regards
Jan Vervecken
Maybe you are looking for
-
HP C6380 - Print job stalls part way through
My wife and I bought a new Dell Studio 15 (Vista 64 SP1) and an HP C6380 over Christmas. We have AT&T DSL and we use the wireless 2WIRE router/modem device. When I went to install the software for the printer, the Dell just kept spitting out the cd-r
-
Structure mapping is incorrect....urgent
Hi Folks, in the below code itab and itab1 structures are diffetenr. I need to move itab1 data into itab from that itab i suppose to pass data to ztable. when i am chk below code i am getting error as structure is not mapping. Can u plz change the c
-
I can't get the gap tool to work right
Hi, I just bought InDesign which I'm attempting to use to create a book with 500+ pics. A big selling point was the new gap tool which was supposed to make the interface significantly more practical for working with lots of images. Unfortunately I
-
Where to thind driver in oracle 8i
Hi, I am writing a program to connecto database using thih driver,by using ipadressof server where oracle 8i is installed.But thin driver is not installed there. so i downloaded but don't where to keep.can any one help me out. How may ways can we com
-
Exception during MergeClone in Nested UOW
I have defined an object model with objA -- 1..1 --> objB. Then, in the business logic, I try to create objA and objB in nested UOW, psudo code as follows: UOWParent = session.acquireUOW(); UOWinner1 = UOWParent.acquireUOW(); objB = new ObjectB; UOWi