LDAPRealm with WLS 6.0 example?
Hi,
Since BEA does not provide an example, can anyone on this group suggest a simple
experiment to try and get an LDAPRealm working with WLS 6.0?
My situation: I have read-only access to a remote LDAP server, and I am trying
to write a JSP page that will simply access the server and verify that a username
specified is listed in the LDAP server. Can someone provide a sample code snippet
to do this?
Thanks in advance,
Vasuki.
Can anyone tell me the difference between the config.xml file and the ldaprealm.properties
file? They seem to have a lot of the same configuration parameters..
"Jon Wilmoth" <[email protected]> wrote:
>
>
I have also used the RDBMS realm successfully in the past and am now
=
trying to get up to speed on the LDAP realm. The biggest thing that
I'm =
struggling with now is I don't know the expected schema structure for
my =
ldap db. It would be helpful if BEA could give us an example LDIF file.
=
=20
Jon
--=20
Jon Wilmoth
Software Architect
eSage Group
(206) 264-5675 (Voice & Fax)
[email protected]
http://www.esagegroup.com
<[email protected]> wrote in message =
news:[email protected]...
Do you have the user "system" defined in your LDAP server? If so,
=
does if have admin or read/write permission on all objects?=20
Jerrie=20
=
==20I tried using your example. I do not get any error messages but my
=
server does
not come up. It looks like it hangs trying to connect to the LDAP
=
server. Any
suggestions for debugging? Thanks
"Satya Ghattu" <[email protected]> wrote:
Vasuki,
here's an example of what you should have in your config.xml file.
<Realm
Name=3D"defaultRealm"
FileRealm=3D"defaultFileRealm"
CachingRealm=3D"defaultCachingRealm"
/>
<CachingRealm
Name=3D"defaultCachingRealm"
BasicRealm=3D"myldaprealm"
/>
<LDAPRealm
Name=3D"myldaprealm"
LDAPURL=3D"ldap://ldapserver:389"
Principal=3D"uid=3Dadmin, ou=3DAdministrators, =ou=3DTopologyManagement,
o=3DNetscapeRoot"
Credential=3D"MyLDAPCredential"
AuthProtocol=3D"simple"
UserAuthentication=3D"local"
UserDN=3D"o=3Dairius.com,ou=3DPeople"
UserNameAttribute=3D"uid"
UserPasswordAttribute=3D"userpassword"
GroupDN=3D"o=3Dairius.com,ou=3DGroups"
GroupNameAttribute=3D"cn"
GroupIsContext=3D"false"
GroupUsernameAttribute=3D"uniquemember"
/>
let us know if you still come across with any problems...
Thanks
-satya
Vasuki Seshadri <[email protected]> wrote in message
news:[email protected]...
Hi,
Since BEA does not provide an example, can anyone on this group
=
suggest
a
simple
experiment to try and get an LDAPRealm working with WLS 6.0?
My situation: I have read-only access to a remote LDAP server, andI am
trying
to write a JSP page that will simply access the server and verify
=
that
a
username
specified is listed in the LDAP server. Can someone provide a =
sample
code
snippet
to do this?
Thanks in advance,
Vasuki.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 5.50.4807.2300" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>I have also used the RDBMS realm =
successfully in=20
the past and am now trying to get up to speed on the LDAP realm.
=
The=20
biggest thing that I'm struggling with now is I don't know the expected
=
schema=20
structure for my ldap db. It would be helpful if BEA could
=
give us an=20
example LDIF file. </FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT> </DIV>
<DIV><FONT face=3DArial size=3D2>Jon<BR>--=20
<BR>************************************************<BR>Jon =
Wilmoth<BR>Software=20
Architect<BR>eSage Group<BR>(206) 264-5675 (Voice & Fax)<BR><A
=
href=3D"mailto:[email protected]">[email protected]</A><BR><A=
=20
href=3D"http://www.esagegroup.com">http://www.esagegroup.com</A></FONT></=
DIV>
<BLOCKQUOTE=20
style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; =
BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV><<A=20
=
href=3D"mailto:[email protected]">[email protected]</A>&g=
t;=20
wrote in message <A=20
=
href=3D"news:[email protected]">news:[email protected]=
a.com</A>...</DIV><BR><FONT=20
face=3Dsans-serif size=3D1>Do you have the user "system" defined in
=
your LDAP=20
server? If so, does if have admin or read/write permission on
=
all=20
objects?</FONT> <BR><BR><FONT face=3Dsans-serif size=3D1>Jerrie</FONT>
=
<BR><BR><FONT face=3Dsans-serif=20
=
size=3D1>>>>>>>>>>>>>>>>>=
&=gt;>>>>>>>>>>>>>>>>>&g=
t;>>>>>>>>>>>>>>>>>>=
;>>>>>>>>>>>>>>>>>>=
</FONT>=20<BR><BR><FONT face=3D"Courier New" size=3D2>I tried using your =
example. I do=20
not get any error messages but my server does<BR>not come up. It
=
looks=20
like it hangs trying to connect to the LDAP server. =
Any<BR>suggestions=20
for debugging? Thanks<BR><BR>"Satya Ghattu"=20
<[email protected]> =
wrote:<BR>>Vasuki,<BR>>here's an=20
example of what you should have in your config.xml=20
file.<BR>><BR>><Realm<BR>> =
Name=3D"defaultRealm"<BR>>=20
=
FileRealm=3D"defaultFileRealm"<BR>>CachingRealm=3D"defaultCachin=
gRealm"<BR>>=20
/><BR>><BR>> <CachingRealm<BR>>=20
Name=3D"defaultCachingRealm"<BR>>=20
BasicRealm=3D"myldaprealm"<BR>> /><BR>><BR>>=20
<LDAPRealm<BR>> Name=3D"myldaprealm"<BR>>=20
LDAPURL=3D"ldap://ldapserver:389"<BR>> =
Principal=3D"uid=3Dadmin,=20
ou=3DAdministrators, =
ou=3DTopologyManagement,<BR>>o=3DNetscapeRoot"<BR>>=20
Credential=3D"MyLDAPCredential"<BR>>=20
AuthProtocol=3D"simple"<BR>> =
UserAuthentication=3D"local"<BR>>=20
UserDN=3D"o=3Dairius.com,ou=3DPeople"<BR>>=20
UserNameAttribute=3D"uid"<BR>>=20
UserPasswordAttribute=3D"userpassword"<BR>>=20
GroupDN=3D"o=3Dairius.com,ou=3DGroups"<BR>>=20
GroupNameAttribute=3D"cn"<BR>> =
GroupIsContext=3D"false"<BR>>=20
GroupUsernameAttribute=3D"uniquemember"<BR>> =
/><BR>><BR>>let=20
us know if you still come across with any=20
problems...<BR>>Thanks<BR>>-satya<BR>><BR>>Vasuki Seshadri
=
<[email protected]> wrote in=20
=
message<BR>>news:[email protected]...<BR>>><BR>>&=
gt;=20
Hi,<BR>>><BR>>> Since BEA does not provide an example,
can =
anyone=20
on this group suggest<BR>>a<BR>>simple<BR>>> experiment
to =
try and=20
get an LDAPRealm working with WLS 6.0?<BR>>><BR>>> My =
situation: I=20
have read-only access to a remote LDAP server, and<BR>>I=20
am<BR>>trying<BR>>> to write a JSP page that will simply =
access the=20
server and verify that<BR>>a<BR>>username<BR>>> specified
=
is=20
listed in the LDAP server. Can someone provide a=20
sample<BR>>code<BR>>snippet<BR>>> to do=20
this?<BR>>><BR>>> Thanks in advance,<BR>>>=20
Vasuki.<BR><BR>><BR>><BR><BR></BLOCKQUOTE></FONT></BODY></HTML>
Similar Messages
-
ConnectionPool problems with WLS 7.0 and Oracle 9.2
Hi,
We are using WLS 7.0 SP4, and Oracle 9 and the Oracle thin driver type 4. In our
application on the productive system (and only there) we constantly encounter
a whole set of SQLExceptions which have all in common that the Connection from
the pool is not valid any more when the application tries to use it.
Typical, recurring error messages are:
- Exhausted ResultSet
- Connection has already been closed
- Closed Statement
- Transaction is no longer active - status committing
- NullPointerException at
weblogic.jdbc.pool.Connection.prepareStatement()
There are no special Statements which create these errors. They are spread at
random across practically every query the application creates, and the same queries
sometimes succeed and sometimes fail.
I double and triple checked that all Connections, Statements and ResultSets are
closed immediately after use. As an example, I attached a code snippet and a resulting
StackTrace which.
The problem also seems to occur only with an (unknown) minimum of concurrent usern,
since in the approval tests on an almost identical test system these errors never
occurred.
I also followed the advice from Oracle and installed the latest Oracle JDBC driver
(Oracle 10g) - to no avail.
What else can I do?
Another question: Is it correct that my Oracle JDBC driver is in the application
classpath (via a reference in the Manifest file of the application jar), not in
the system classpath? There has never been a problem with that, but in a Newsgroup
answer from Nov 10, 2003 (subject: "ResultSet closes prematurely"), Joe Weinstein
suggested to "get it listed at the
front of the -classpath argument that the startWebLogic script creates for the
java line that starts the server".
I hesitate to do so, since the driver is in a standard WebApp- directory, WEB-INF/lib.
Is it possible and safe to add a jar located there to the system classpath? If
it is possible, why is it necessary?
Best regards,
Andreas Zehrt
[CodeSnippetsAndStackTraceForConnectionPoolProblem.txt]Andreas Zehrt wrote:
Hi Joe,
Your hint that there is a threading problem was right:
On further investigation of the code I found out that the class that passes the
Connection to the DAO not only stores it as a member at some point (which is not
a good idea anyway) but is also a singleton - then, of course, it's no surprise
that the Connection gets invalid in a incalculable way when concurrent threads
share it.
The singleton instantiation was not so obvious because the way of instantiation
is controlled by a configuration parameter that can be overridden at different
levels.
I changed it and the productive logfiles indicate that the SQLExceptions related
to that class have disappeared.I am happy to have helped.
So, thanks a lot for the advice.
But I am still wondering why this code has worked for so long a time with WLS
5.1 and Oracle 8 (the system has been productive for over 2 years). Even in the
approval tests with WLS 7.0 and Oracle 9, we did not run into problems, although
it was multi-user environment.Mo idea.
I still believe that there is a difference between WLS 5.1 and 7.0 in the way
it treats pooled Oracle JDBC Connections. I wished both Oracle and Bea could be
a little more explicit about those changes and possible version incompatabilities
beyond the general advice "use the latest thin driver".Though I can think of no change to our pooling which would have had any material
effect in this case, I will certainly do what I can to see that our documentation
is explicit about changes.
Joe
Best regards, Andreas
Joe Weinstein <[email protected]> wrote:
Hi Andreas.
Andreas Zehrt wrote:
Hi,
We are using WLS 7.0 SP4, and Oracle 9 and the Oracle thin driver type4. In our
application on the productive system (and only there) we constantlyencounter
a whole set of SQLExceptions which have all in common that the Connectionfrom
the pool is not valid any more when the application tries to use it.
Typical, recurring error messages are:
- Exhausted ResultSetThat is typically if the statement that created it is either re-executed
or closed.
- Connection has already been closedAs described. If you give a stacktrace, we could make a debug patch which
would show
where it was originally closed.
- Closed Statementsame as above.
- Transaction is no longer active - status committingThat implies your code is obtaining a connection from a transactional
datasource,
and then later trying to use it after the transaction which it was associated
with,
is finished.
- NullPointerException at
weblogic.jdbc.pool.Connection.prepareStatement()Maybe any of the above.
There are no special Statements which create these errors. They arespread at
random across practically every query the application creates, andthe same queries
sometimes succeed and sometimes fail.
I double and triple checked that all Connections, Statements and ResultSetsare
closed immediately after use. As an example, I attached a code snippetand a resulting
StackTrace which.
The problem also seems to occur only with an (unknown) minimum of concurrentusern,
since in the approval tests on an almost identical test system theseerrors never
occurred.
I also followed the advice from Oracle and installed the latest OracleJDBC driver
(Oracle 10g) - to no avail.
What else can I do?
Another question: Is it correct that my Oracle JDBC driver is in theapplication
classpath (via a reference in the Manifest file of the applicationjar), not in
the system classpath? There has never been a problem with that, butin a Newsgroup
answer from Nov 10, 2003 (subject: "ResultSet closes prematurely"),Joe Weinstein
suggested to "get it listed at the
front of the -classpath argument that the startWebLogic script createsfor the
java line that starts the server".
I hesitate to do so, since the driver is in a standard WebApp- directory,WEB-INF/lib.
Is it possible and safe to add a jar located there to the system classpath?If
it is possible, why is it necessary?I was only concerned to ensure we know which driver we are working with.
We also ship
an oracle thin driver, which becomes obsolete soon...
I am concerned that your code creates pool connections to be used later.
The problems
can arise if more than one thread ever gets the same connection, or if
the connection
is used in the same thread, spanning transactions. It does also seem
that there may
be a threading issue, because if two threads each call the code to create
a connection,
and two connections are made, but one over-writes the other, the two
threads can
end up using the same connection, and closing it. The over-written one
never gets closed,
resulting in that leak message you got...
Joe
The Connection parameter is opened by a business component class, ComaServiceProviderClassicImpl.It is propagated through
several classes in the business layer, but not used, until the DAOtakes it to make the query.
So, the Connection is closed where it was opened, not in the DAO class.
public class ConcernDAOImpl extends BaseDAO {
public Collection getConcernsForIncidents(Connection conn, Collectionincidents)
throws DataAccessException, ConstraintException, ComaParseException{>
sqlMessage.append(")");
String sqlStmt = sqlMessage.toString();
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
pstmt = conn.prepareStatement(sqlStmt);
rs = pstmt.executeQuery();
while (rs != null && rs.next()) {
final Concern concern =
new Concern(DAOUtil.getComaOID(rs, ComaDBNames.KDANR));
concern.setIncidentOID(DAOUtil.getComaOID(rs, ComaDBNames.KDAVGENR));
return concerns;
} catch (SQLException sqle) {
// Wrapps real SQL exception
String[] message = new String[]{sqle.getMessage(), sqlStmt};
throw new DataAccessException(ExpCode.S_ORACLE_SQL, message,
sqle);
} finally {
closeAll(rs, pstmt);
_logger.exitDebug(method);
Here, the Connection is acquired and finally closed
public class ComaServiceProviderClassicImpl {
public void updateComplaint(
final Request updateRequest,
final ResponseSingleElement response,
final Principal principal)
throws SystemException {
try {
logger.info("updateComplaint", "store incident");
// store the incident in the database
incidentManager.storeIncident(getConnection(), updateIncident);
// reload the incident from Cache and / or the databaseto get the ContactReferences.
Incident returnIncident = incidentManager.loadIncident(//IncidentManager passes the Connection to the DAO
getConnection(), updateIncident.getOID());
} catch (RemoteException rex) {
// remote exceptions
rollbackIfNecessary();
CoreUtils.unwrapRemoteException(rex, logger);
} catch (SystemException e) {
// all other exceptions --> rollback if necessary and rethrow
rollbackIfNecessary();
throw e;
} finally {
removeConnection();
logger.exitDebug("updateComplaint");
This is the resulting StackTrace:
sql exception: [Closed Statement: next] - sql statement: [select *
at de.deutschepost.ubbrief.coma.persistence.dao.ConcernDAOImpl.getConcernsForIncidents(ConcernDAOImpl.java:363)
at de.deutschepost.ubbrief.coma.persistence.dao.CachingConcernDAOImpl.getConcernsForIncidents(CachingConcernDAOImpl.java:129)
at de.deutschepost.ubbrief.coma.persistence.incidentmanager.IncidentManagerImpl.loadConcernStructuresIntoIncidents(IncidentManagerImpl.java:1067)
at de.deutschepost.ubbrief.coma.persistence.incidentmanager.IncidentManagerImpl.loadStructureForIncident(IncidentManagerImpl.java:320)
at de.deutschepost.ubbrief.coma.persistence.incidentmanager.IncidentManagerImpl.loadIncidents(IncidentManagerImpl.java:264)
at de.deutschepost.ubbrief.coma.persistence.taskmanager.TaskManagerImpl.selectTasksForUser(TaskManagerImpl.java:299)
at de.deutschepost.ubbrief.coma.service.z2.ComaServiceProviderZ2Impl.getTaskList(ComaServiceProviderZ2Impl.java:113)
at de.deutschepost.ubbrief.coma.service.z2.ComaServiceProviderZ2Bean_1dhrj7_EOImpl.getTaskList(ComaServiceProviderZ2Bean_1dhrj7_EOImpl.java:154)
at de.deutschepost.ubbrief.coma.sbba.z2.CMPGetTaskList.runServiceMethod(CMPGetTaskList.java:64)
at de.deutschepost.ubbrief.coma.sbbx.sp.BasicMethodProvider.execute(BasicMethodProvider.java:145)
at de.deutschepost.ubbrief.coma.sbba.z2.CMPGetTaskList_9b9mv5_EOImpl.execute(CMPGetTaskList_9b9mv5_EOImpl.java:46)
at de.deutschepost.ubbrief.coma.sbba.z2.CMPGetTaskList_9b9mv5_EOImpl_WLSkel.invoke(UnknownSource)
at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:159)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:263)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:230)
at de.deutschepost.ubbrief.coma.sbba.z2.CMPGetTaskList_9b9mv5_EOImpl_WLStub.execute(UnknownSource)
at de.deutschepost.ubbrief.backbone.jazz.impl.core.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:115)
at de.deutschepost.ubbrief.backbone.common.impl.core.rpc.server.ServerKernelImpl.handleTransportMessage(ServerKernelImpl.java:270)
at de.deutschepost.ubbrief.backbone.common.impl.core.messaging.MessageTransport.handleMessage(MessageTransport.java:454)
at de.deutschepost.ubbrief.backbone.common.impl.core.KernelFacade.handleMessage(KernelFacade.java:209)
at de.deutschepost.ubbrief.backbone.jazz.impl.backbone.BackboneBean.messageArrived(BackboneBean.java:637)
at de.deutschepost.ubbrief.backbone.jazz.impl.backbone.BackboneBean_ina9d7_ELOImpl.messageArrived(BackboneBean_ina9d7_ELOImpl.java:105)
at de.deutschepost.ubbrief.backbone.jazz.impl.transport.receive.LocalQueueReceiveBean.deliverMessage(LocalQueueReceiveBean.java:43)
at de.deutschepost.ubbrief.backbone.jazz.impl.transport.receive.AbstractMessageReceiveBean.onMessage(AbstractMessageReceiveBean.java:127)
at weblogic.ejb20.internal.MDListener.execute(MDListener.java:377)
at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:311)
at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:286)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2351)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:2267)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:234)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:210)
####<May 26, 2004 12:18:43 PM CEST> <Warning> <JDBC> <S0048016> <REMA20Z><Finalizer> <kernel identity> <> <001074> <A JDBC pool connection leak
was detected. A Connection leak occurs when a connection obtained from
the pool was not closed explicitly by calling close() and then was disposed
by the garbage collector and returned to the connection pool. The following
stack trace at create shows where the leaked connection was created.
Stack trace at connection create:
at weblogic.jdbc.pool.Connection.<init>(Connection.java:66)
at weblogic.jdbc.pool.Driver.allocateConnection(Driver.java:294)
at weblogic.jdbc.pool.Driver.connect(Driver.java:210)
at weblogic.jdbc.jts.Driver.getNonTxConnection(Driver.java:373)
at weblogic.jdbc.jts.Driver.connect(Driver.java:129)
at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:287)
at de.deutschepost.ubbrief.coma.core.ComaComponentImpl.getConnectionFromPool(ComaComponentImpl.java:163)
at de.deutschepost.ubbrief.coma.core.ComaComponentImpl.getConnectionInternal(ComaComponentImpl.java:135)
at de.deutschepost.ubbrief.coma.core.ComaComponentImpl.getConnection(ComaComponentImpl.java:99)
at de.deutschepost.ubbrief.coma.persistence.customermanager.CurryCustomerManagerImpl.findCustomers(CurryCustomerManagerImpl.java:73)
at de.deutschepost.ubbrief.coma.service.z2.ComaServiceProviderZ2BaseImpl.resolveCustomerInstances(ComaServiceProviderZ2BaseImpl.java:808)
at de.deutschepost.ubbrief.coma.service.z2.ComaServiceProviderZ2Impl.getTaskList(ComaServiceProviderZ2Impl.java:213)
at de.deutschepost.ubbrief.coma.service.z2.ComaServiceProviderZ2Bean_1dhrj7_EOImpl.getTaskList(ComaServiceProviderZ2Bean_1dhrj7_EOImpl.java:154)
at de.deutschepost.ubbrief.coma.sbba.z2.CMPGetTaskList.runServiceMethod(CMPGetTaskList.java:64)
at de.deutschepost.ubbrief.coma.sbbx.sp.BasicMethodProvider.execute(BasicMethodProvider.java:145)
at de.deutschepost.ubbrief.coma.sbba.z2.CMPGetTaskList_9b9mv5_EOImpl.execute(CMPGetTaskList_9b9mv5_EOImpl.java:46)
at de.deutschepost.ubbrief.coma.sbba.z2.CMPGetTaskList_9b9mv5_EOImpl_WLSkel.invoke(UnknownSource)
at weblogic.rmi.internal.ServerRequest.sendReceive(ServerRequest.java:159)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:263)
at weblogic.rmi.cluster.ReplicaAwareRemoteRef.invoke(ReplicaAwareRemoteRef.java:230)
at de.deutschepost.ubbrief.coma.sbba.z2.CMPGetTaskList_9b9mv5_EOImpl_WLStub.execute(UnknownSource)
at de.deutschepost.ubbrief.backbone.jazz.impl.core.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:115)
at de.deutschepost.ubbrief.backbone.common.impl.core.rpc.server.ServerKernelImpl.handleTransportMessage(ServerKernelImpl.java:270)
at de.deutschepost.ubbrief.backbone.common.impl.core.messaging.MessageTransport.handleMessage(MessageTransport.java:454)
at de.deutschepost.ubbrief.backbone.common.impl.core.KernelFacade.handleMessage(KernelFacade.java:209)
at de.deutschepost.ubbrief.backbone.jazz.impl.backbone.BackboneBean.messageArrived(BackboneBean.java:637)
at de.deutschepost.ubbrief.backbone.jazz.impl.backbone.BackboneBean_ina9d7_ELOImpl.messageArrived(BackboneBean_ina9d7_ELOImpl.java:105)
at de.deutschepost.ubbrief.backbone.jazz.impl.transport.receive.LocalQueueReceiveBean.deliverMessage(LocalQueueReceiveBean.java:43)
at de.deutschepost.ubbrief.backbone.jazz.impl.transport.receive.AbstractMessageReceiveBean.onMessage(AbstractMessageReceiveBean.java:127)
at weblogic.ejb20.internal.MDListener.execute(MDListener.java:377)
at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:311)
at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:286)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2351)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:2267)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:234)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:210) -
Workaround for using Oracle JDBC extension with WLS pooling
Reading the newsgroup I saw that many of us encountered the problems
with ClassCastException when tried to use Oracle JDBC extension
with WLS pooling. I also had.
In this case BEA recommends to use dangerous
method getVendorConnection() which exposes
the physical connection object to your code.
Yes it's really dangerous because of unsafe usage may breaks
WLS pooled connection(s).
Moreover, this practice will make your JDBC code
unportable (your JDBC code in addition to Oracle dependence
became Weblogic dependent):
void doSmth() {
Connection con = ...;
Connection vCon = ((WLConnection)con).getVendorConnection();
// + mess of usage con in one places and vCon in others
// (where Oracle extensions are needed)
// !Don't forget to don't close vCon!
Sux.
I found the workaround.
Introduction
============
Yes the real cause of ClassCastException is that
in depth of Oracle driver the casting
to class oracle.jdbc.driver.OracleConnection
(not to interface oracle.jdbc.OracleConnection)
is performed.
Someone can say that this is bug or pure desing.
Weblogic pooled connection provide dynamic
implementation for all public interfaces
which real physical (wrapped) connection object implements.
Great feature!
But I guess that all interface methods implemented
by simple call-delegation to physical (wrapped) connection object.
In case of oracle.jdbc.OracleConnection interface
this approach doesn't work for at least one its method:
public OracleConnection unwrap()
WLS pooled connection shoudn't implement this method by
delegation to physical connection object BUT should
return physical connection object itself!
// Wrong implementation of unwrap()
// delegation is used
public OracleConnection unwrap() {
return physicalConnection.unwrap();
// Right implementation of unwrap()
// physical connection returned
public OracleConnection unwrap() {
return physicalConnection;
Workaround
==========
1. Develop your own OracleConnection wrapper class:
import oracle.jdbc.OracleConnection;
import weblogic.jdbc.extensions.WLConnection;
public class MyOracleConnectionImpl implements OracleConnection {
private OracleConnection con;
public MyOracleConnectionImpl(OracleConnection connection)
throws SQLException
this.con = connection;
public OracleConnection unwrap() {
return (OracleConnection)
((WLConnection)con).getVendorConnection();
/* Implement all other methods by delegation to con object */
2. Don't get Connections directly from DataSource --
develop your own simple (may be static) utility
class which retrives Connections from dataSource
and returns them wrapped into your MyOracleConnectionImpl
to your code from some method:
puclic abstract class MyConnectionSource {
public static Connection getConnection() {
Connection con = // get it from DataSource
return new MyOracleConnectionImpl((OracleConnection)con);
3. Add attribute RemoveInfectedConnectionsEnabled="false"
to definition of your JDBCConnectionPool within config.xml
You may do it because of you `safely` use vendorConnection --
you don't expose it to application code.
4. Enjoy the Oracle JDBC extensions in your code!
Example:
Connection con = MyConnectionSource.getConnection;
ArrayDescriptor add =
ArrayDescriptor.createDescriptor("your_type", con);
Hope it helps to someone.
Best regards,
Eugene VoytitskyHello Eugene Voytitsky,
Thanks Eugene Voytitsky for your idea
I have tried the solution suggested by You, but it did not work.
It still throws ClassCastException.
I am sorry for posting the whole code of two classes below.
I did this to give you more clarity.
I am also indicating the place where the exception was thrown..
Please let me know if I am doing something wrong.
OracleConnection Wrapper class
package ejbTesting;
// sql imports
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.SQLWarning;
import java.sql.Statement;
// util imports
import java.util.Map;
import java.util.Properties;
// imports from Oracle Driver Classes
import oracle.jdbc.OracleConnection;
import oracle.jdbc.OracleOCIFailover;
import oracle.jdbc.OracleSavepoint;
// import from Weblogic extensions
import weblogic.jdbc.extensions.WLConnection;
public class WeblogicConnectionWrapper implements OracleConnection
// oracle connection object
private OracleConnection connection;
public WeblogicConnectionWrapper (OracleConnection orclConnection)
try
this.connection = orclConnection;
catch(Exception unexpected )
unexpected.printStackTrace();
public OracleConnection unwrap()
try
// The datasource returns a weblogic.jdbc.pool.Connection
// This needs to be type casted to weblogic.jdbc.extensions.WLConnection
// Only this weblogic.jdbc.extensions.WLConnection CAN BE type casted
// to OracleConnection
return (OracleConnection) ((WLConnection) connection).getVendorConnection();
catch(Exception sqlException )
sqlException.printStackTrace ();
return null;
/* Implement all other methods by delegation to connection object */
public Connection _getPC()
return connection._getPC();
public void archive(int i, int j, String s)
throws SQLException
connection.archive(i, j, s);
public void assertComplete()
throws SQLException
connection.assertComplete();
public void clearWarnings()
throws SQLException
connection.clearWarnings();
public void close()
throws SQLException
connection.close();
public void commit()
throws SQLException
connection.commit();
public Statement createStatement()
throws SQLException
return connection.createStatement();
public Statement createStatement(int i, int j)
throws SQLException
return connection.createStatement(i, j);
public boolean getAutoClose()
throws SQLException
return connection.getAutoClose();
public boolean getAutoCommit()
throws SQLException
return connection.getAutoCommit();
public CallableStatement getCallWithKey(String s)
throws SQLException
return connection.getCallWithKey(s);
public String getCatalog()
throws SQLException
return connection.getCatalog();
public boolean getCreateStatementAsRefCursor()
return connection.getCreateStatementAsRefCursor();
public int getDefaultExecuteBatch()
return connection.getDefaultExecuteBatch();
public int getDefaultRowPrefetch()
return connection.getDefaultRowPrefetch();
public Object getDescriptor(String s)
return connection.getDescriptor(s);
public boolean getExplicitCachingEnabled()
throws SQLException
return connection.getExplicitCachingEnabled();
public boolean getImplicitCachingEnabled()
throws SQLException
return connection.getImplicitCachingEnabled();
public boolean getIncludeSynonyms()
return connection.getIncludeSynonyms();
public Object getJavaObject(String s)
throws SQLException
return connection.getJavaObject(s);
public DatabaseMetaData getMetaData()
throws SQLException
return connection.getMetaData();
public Properties getProperties()
return connection.getProperties();
public boolean getRemarksReporting()
return connection.getRemarksReporting();
public boolean getRestrictGetTables()
return connection.getRestrictGetTables();
public String getSQLType(Object obj)
throws SQLException
return connection.getSQLType(obj);
public String getSessionTimeZone()
return connection.getSessionTimeZone();
public int getStatementCacheSize()
throws SQLException
return connection.getStatementCacheSize();
public PreparedStatement getStatementWithKey(String s)
throws SQLException
return connection.getStatementWithKey(s);
public int getStmtCacheSize()
return connection.getStmtCacheSize();
public short getStructAttrCsId()
throws SQLException
return connection.getStructAttrCsId();
public boolean getSynchronousMode()
return connection.getSynchronousMode();
public int getTransactionIsolation()
throws SQLException
return connection.getTransactionIsolation();
public Map getTypeMap()
throws SQLException
return connection.getTypeMap();
public String getUserName()
throws SQLException
return connection.getUserName();
public boolean getUsingXAFlag()
return connection.getUsingXAFlag();
public SQLWarning getWarnings()
throws SQLException
return connection.getWarnings();
public boolean getXAErrorFlag()
return connection.getXAErrorFlag();
public boolean isClosed()
throws SQLException
return connection.isClosed();
public boolean isLogicalConnection()
return connection.isLogicalConnection();
public boolean isReadOnly()
throws SQLException
return connection.isReadOnly();
public String nativeSQL(String s)
throws SQLException
return connection.nativeSQL(s);
public Object openJoltConnection(String s, short word0, short word1)
return connection.openJoltConnection(s, word0, word1);
public void oracleReleaseSavepoint(OracleSavepoint oraclesavepoint)
throws SQLException
connection.oracleReleaseSavepoint(oraclesavepoint);
public void oracleRollback(OracleSavepoint oraclesavepoint)
throws SQLException
connection.oracleRollback(oraclesavepoint);
public OracleSavepoint oracleSetSavepoint()
throws SQLException
return connection.oracleSetSavepoint();
public OracleSavepoint oracleSetSavepoint(String s)
throws SQLException
return connection.oracleSetSavepoint(s);
public int pingDatabase(int i)
throws SQLException
return connection.pingDatabase(i);
public CallableStatement prepareCall(String s)
throws SQLException
return connection.prepareCall(s);
public CallableStatement prepareCall(String s, int i, int j)
throws SQLException
return connection.prepareCall(s, i, j);
public CallableStatement prepareCallWithKey(String s)
throws SQLException
return connection.prepareCallWithKey(s);
public PreparedStatement prepareStatement(String s)
throws SQLException
return connection.prepareStatement(s);
public PreparedStatement prepareStatement(String s, int i, int j)
throws SQLException
return connection.prepareStatement(s, i, j);
public PreparedStatement prepareStatementWithKey(String s)
throws SQLException
return connection.prepareStatementWithKey(s);
public void purgeExplicitCache()
throws SQLException
connection.purgeExplicitCache();
public void purgeImplicitCache()
throws SQLException
connection.purgeImplicitCache();
public void putDescriptor(String s, Object obj)
throws SQLException
connection.putDescriptor(s, obj);
public void registerApiDescription(String s, short word0, short word1, String
s1)
connection.registerApiDescription(s, word0, word1, s1);
public void registerSQLType(String s, Class class1)
throws SQLException
connection.registerSQLType(s, class1);
public void registerSQLType(String s, String s1)
throws SQLException
connection.registerSQLType(s, s1);
public void registerTAFCallback(OracleOCIFailover oracleocifailover, Object
obj)
throws SQLException
connection.registerTAFCallback(oracleocifailover, obj);
public void rollback()
throws SQLException
connection.rollback();
public void setAutoClose(boolean flag)
throws SQLException
connection.setAutoClose(flag);
public void setAutoCommit(boolean flag)
throws SQLException
connection.setAutoCommit(flag);
public void setCatalog(String s)
throws SQLException
connection.setCatalog(s);
public void setCreateStatementAsRefCursor(boolean flag)
connection.setCreateStatementAsRefCursor(flag);
public void setDefaultExecuteBatch(int i)
throws SQLException
connection.setDefaultExecuteBatch(i);
public void setDefaultRowPrefetch(int i)
throws SQLException
connection.setDefaultRowPrefetch(i);
public void setExplicitCachingEnabled(boolean flag)
throws SQLException
connection.setExplicitCachingEnabled(flag);
public void setImplicitCachingEnabled(boolean flag)
throws SQLException
connection.setImplicitCachingEnabled(flag);
public void setIncludeSynonyms(boolean flag)
connection.setIncludeSynonyms(flag);
public void setReadOnly(boolean flag)
throws SQLException
connection.setReadOnly(flag);
public void setRemarksReporting(boolean flag)
connection.setRemarksReporting(flag);
public void setRestrictGetTables(boolean flag)
connection.setRestrictGetTables(flag);
public void setSessionTimeZone(String s)
throws SQLException
connection.setSessionTimeZone(s);
public void setStatementCacheSize(int i)
throws SQLException
connection.setStatementCacheSize(i);
public void setStmtCacheSize(int i)
throws SQLException
connection.setStmtCacheSize(i);
public void setStmtCacheSize(int i, boolean flag)
throws SQLException
connection.setStmtCacheSize(i, flag);
public void setSynchronousMode(boolean flag)
connection.setSynchronousMode(flag);
public void setTransactionIsolation(int i)
throws SQLException
connection.setTransactionIsolation(i);
public void setTypeMap(Map map)
throws SQLException
connection.setTypeMap(map);
public void setUsingXAFlag(boolean flag)
connection.setUsingXAFlag(flag);
public void setWrapper(OracleConnection oracleconnection)
connection.setWrapper(oracleconnection);
public void setXAErrorFlag(boolean flag)
connection.setXAErrorFlag(flag);
public void shutdown(int i)
throws SQLException
connection.shutdown(i);
public void startup(String s, int i)
throws SQLException
connection.startup(s, i);
Util class to get Wrapped Connections from
datasource
package ejbTesting;
// j2ee imports
import javax.naming.InitialContext;
import javax.sql.DataSource;
// sql imports
import java.sql.Connection;
// imports from Oracle Driver Classes
import oracle.jdbc.OracleConnection;
* Wrapper class for the DataSource Connection from Weblogic pool
public class DataSourceConnectionWrapper
// datasource variable
private static transient DataSource datasource = null;
private static String dbName = "jdbc/workbench";
* Method that returns the database connection
public static Connection getConnection()
try
// initialsing the datasource object
initialiseDataSource ();
// Getting a connection from the datasource
Connection con = datasource.getConnection( );
// wrapping it custom wrapper class and
// returning the connection object
return new WeblogicConnectionWrapper((OracleConnection)con);
catch(Exception exception )
exception.printStackTrace();
return null;
private static void initialiseDataSource( ) throws Exception
if ( datasource == null )
try
InitialContext ic = new InitialContext( );
datasource = (DataSource) ic.lookup( dbName );
catch (Exception ne )
throw new Exception( "NamingException while looking up DataSource with
JNDI name" +
dbName + ": \n" + ne.getMessage( ) );
Exception Stack Trace
The line 46 in DataSourceConnectionWrapper
corresponds to
return new WeblogicConnectionWrapper((OracleConnection)con);
Which I feel is logical as the connection which we get from Weblogic
datasource cannot be type casted to OracleConnection
java.lang.ClassCastException: weblogic.jdbc.pool.Connection
at ejbTesting.DataSourceConnectionWrapper.getConnection(DataSourceConnectionWrapper.java:46) -
Problems installing Axis with WLS 8.1
I'm having problems installing Apache Axis with WLS 8.1.
I'm totally new to WLS, so this may be at the heart of the problem.
I install Axis as per the installation instructions.
These are the steps I followed:
1. Installed the axis directory to
C:\bea\weblogic81\samples\domains\examples\applications\axis2. Added xml-apis.jar and xercesImpl.jar to the AXISCLASSPATH ( the complete AXISCLASSPATH is
C:\axis-1_2RC2\lib\wsdl4j.jar;C:\axis-1_2RC2\lib\axis-ant.jar;C:\axis-1_2RC2\lib\commons-discovery.jar;C:\axis-1_2RC2\lib\commons-logging.jar;C:\axis-1_2RC2\lib\jaxrpc.jar;C:\axis-1_2RC2\lib\log4j.properties;C:\axis-1_2RC2\lib\log4j-1.2.8.jar;C:\axis-1_2RC2\lib\saaj.jar;C:\axis-1_2RC2\lib\axis.jar;C:\javasoft\javamail-1.3.2\mail.jar;C:\javasoft\javamail-1.3.2\lib\smtp.jar;C:\javasoft\javamail-1.3.2\lib\mailapi.jar;C:\javasoft\javamail-1.3.2\lib\pop3.jar;C:\javasoft\javamail-1.3.2\lib\imap.jar;C:\javasoft\jaf-1.0.2\activation.jar;C:\javasoft\Xerces\xerces-2_5_0\xercesImpl.jar;C:\javasoft\Xerces\xerces-2_5_0\xml-apis.jar)3.Added weblogic.xml file to C:\bea\weblogic81\samples\domains\examples\applications\axis\WEB-INF\weblogic.xmlas per instructions with <prefer-web-inf-classes>true</prefer-web-inf-classes> 4. Started the examples server.
5. I then tried to validate the installation as per intructions using <a href="http://localhost:7001/axis"></a>
Everything looks OK with the Axis start page displayed.
6. I then tried happyaxis.jsp . All needed components are present with saaj.jar being picked up from :
Found SAAJ API (javax.xml.soap.SOAPMessage) at C:\bea\weblogic81\samples\domains\examples\examplesServer\.wlnotdelete\extract\examplesServer__appsdir_axis_dir_axis\jarfiles\WEB-INF\lib\saaj.jar7. I'm missing optional component xmlsec.jar
8. Now the trouble starts!!!
pretty much anything I try now comes back with:
AXIS error
Sorry, something seems to have gone wrong... here are the details:
Exception - java.lang.NullPointerExceptionI get this if I try:
<a href="http://localhost:8080/axis/services/Version?method=getVersion"></a>
or
<a href="http://localhost:7001/axis/services/AdminService?wsdl"></a>
or
<a href="http://localhost:7001/axis/services/Version?wsdl"></a>
So, what's going wrong? I cant think what to do next. Please help! I need this to work fairly urgently.
Nigel
PS. here's the NP exception in detail
java.lang.NullPointerException
at weblogic.xml.jaxp.ChainingEntityResolver.popEntityResolver(ChainingEn
tityResolver.java:61)
at weblogic.xml.jaxp.RegistryDocumentBuilder.setEntityResolver(RegistryD
ocumentBuilder.java:168)
at org.apache.axis.utils.XMLUtils.releaseDocumentBuilder(XMLUtils.java:2
35)
at org.apache.axis.utils.XMLUtils.newDocument(XMLUtils.java:312)
at org.apache.axis.utils.XMLUtils.StringToElement(XMLUtils.java:485)
at org.apache.axis.AxisFault.addFaultDetail(AxisFault.java:654)
at org.apache.axis.AxisFault.addHostname(AxisFault.java:888)
at org.apache.axis.AxisFault.addHostnameIfNeeded(AxisFault.java:877)
at org.apache.axis.AxisFault.initFromException(AxisFault.java:280)
at org.apache.axis.AxisFault.<init>(AxisFault.java:181)
at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
at org.apache.axis.server.AxisServer.generateWSDL(AxisServer.java:487)
at org.apache.axis.transport.http.QSWSDLHandler.invoke(QSWSDLHandler.jav
a:62)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.axis.transport.http.AxisServlet.processQuery(AxisServlet.j
ava:1132)
at org.apache.axis.transport.http.AxisServlet.doGet(AxisServlet.java:233
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBas
e.java:301)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
(ServletStubImpl.java:1006)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:419)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:315)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
n.run(WebAppServletContext.java:6718)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
121)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
rvletContext.java:3764)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
pl.java:2644)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)I'm doing exactly the same thing (adding the xerces jars to my web-inf/lib), but happyaxis.jsp is saying the jar I'm using is invalid as follows:
Error: Invalid version of SAAJ API found in D:\bea\weblogic81\server\lib\webservices.jar. Make sure that Axis' saaj.jar precedes D:\bea\weblogic81\server\lib\webservices.jar in CLASSPATH.
Axis will not work.
Maybe this worked in a previous release/SP? I'm using 8.1SP3. I've read some other post saying you cannot override stuff in the weblogic.jar, so I've tried to add the jars to the pre_classpath, which resolves the issue but I get a soap fault related to this thread. Any ideas?
Thanks,
Lou
My weblogic.xml looks as follows:
<weblogic-web-app>
<jsp-descriptor>
<!-- Comment the jspServlet param out to go back to weblogic's jspc -->
<jsp-param>
<param-name>jspServlet</param-name>
<param-value>weblogic.servlet.WlwJSPServlet</param-value>
</jsp-param>
<jsp-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</jsp-param>
</jsp-descriptor>
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
<url-match-map>
weblogic.servlet.utils.SimpleApacheURLMatchMap
</url-match-map>
</weblogic-web-app> -
Apache-soap Problem with WLS 5.1sp9
I have problem with WLS 5.1sp9.
My environment is the following :
jaf-1.0.1
javamail-1.2
soap-2.2
xerces-1.4.4
and I want to call EJB.
So, I write some EJB and deploy it.
And rpcrouter work!!
Success to deploy the Service.
But I run into problem with calling this ejb.
This error is the following.
SOAP-ENV:Server.BadTargetObjectURI
Unable to resolve target object: BC2_BoardSync
please, help me.
here's my example..
ps.
sorry for my poor English..T_T
[ws5.10.zip]
[vb.zip]I have problem with WLS 5.1sp9.
My environment is the following :
jaf-1.0.1
javamail-1.2
soap-2.2
xerces-1.4.4
and I want to call EJB.
So, I write some EJB and deploy it.
And rpcrouter work!!
Success to deploy the Service.
But I run into problem with calling this ejb.
This error is the following.
SOAP-ENV:Server.BadTargetObjectURI
Unable to resolve target object: BC2_BoardSync
please, help me.
here's my example..
ps.
sorry for my poor English..T_T
[ws5.10.zip]
[vb.zip] -
Using WSSEC User token with WLS 702
Hi,
I am trying to use the WSSEC user token auth with WLS 7.0.2. I am not sure if I understand this correctly or not but I think WSSEC is not supported in my version. If so, which version do I need to upgrade to?
Also, as I understand it, there are three types of auth: Basic, Form and Client Cert. Which type(s) do I use to make sure my WSSEC user token is parsed correctly?
I have my HTTP Auth working correctly with Basic Auth and I neither have a Cert nor am I using a form to send my username and password (they are sent encoded in the SOAP headers).
Any help to get me moving would be greatly appreciated.
Thanks,
Sridhar.Jong,
Thanks for your reply. I downloaded and installed WLS 813. I still am unable to do an wssec authentication. I think my problem is that I am more of a "do as you see" guy. So, if you have an example (with a properly configured deployment descriptor files), it would help me better.
I did look at your http://webservice.bea.com:7001/ scenarios. The only one which said anything about WSSEC was Scenario 3 and the invocation failed! So, I was unable to see the request to send over.
Currently, I am using Vordel SOAPBox to generate the request (with WSSEC username token added in).
All I want to do is authenticate my user based on my defined realm role using WSSEC username token and password (which happens to be the one which weblogic server starts with).
Any help with this would be much appreciated.
Thanks,
Sridhar. -
Java ftp server which can use LDAP, how to integrate with WLS' implementation of LDAP?
Howdy.
I'm setting up a java ftp server
(http://www.mycgiserver.com/~ranab/ftp/index.html) which is capable of using
LDAP for it's user security. I would like to integrate this ftp server with
wls' implementation of LDAP so I only have to admin one user list.
Does wls put it's user list in the LDAP or in it's own proprietary setup? I
tried playing around with it, but the users don't seem to appear in the JNDI
tree. Is this where the LDAP stuff is located? I thought it was in there?
If it's in it's own setup, is there a way to propagate the users to LDAP?
If these look like newbie Q&A, I guess they kind of are, I'm new to LDAP.
Thanks for any input you might have.Peter,
If you are talking about using the embedded LDAP server in WLS 7.0 for this purpose
I think you are going done the wrong path.
Look at the following URL on how to use an external LDAP server for your custom
application
http://e-docs.bea.com/wls/docs70/secmanage/realm.html#1172008
Chuck Nelson
DRE
BEA Technical Support -
I just downlouded the latest version of the Muse CC and it doesn't work well, it freezes all the time, in particular with the tools. Example the selection tool doesn't wor at all. Is there any solution for this problem?
Hi!
I restarted the computer, but the same issue happens again. When I move my mouse over some object or tool, it doesn’t come active at all (only some of the tools works) When I try to change “site properties”, I can’t choose tablet or phone mode or even I can’t select the checkboxes, only thing what I can do is change the numbers (high and width) . After all the main problem is that I can’t select some of the items or functions by mouse, but only by the keyboard. -
Please Help: A Problem With Oracle-Provided 'Working' Example
A Problem With Oracle-Provided 'Working' Example Using htp.formcheckbox
I followed the simple steps in the Oracle-provided example:
Doc ID: Note:116534.1
Subject: How to use checkbox in webdb for bulk update using webdb report
However, when I select a checkbox and click on the Update button, I get a "ORA-01036: illegal variable name/number" error. Please advise. This was a very promising feature.
Fred
Below are step-by-step instructions provided by Oracle to create this "working" example:
How to use a checkbox in WEBDB 2.2 report for bulk update.
PURPOSE
This article shows how checkbox can used placed on WEBDB report
and how to use it.
SCOPE & APPLICATION
The following example to guide through the steps to create a working
example of this.
In this example, the checkbox is used to select the records. On clicking
the update button, the pl/sql procedure is called which will update col1 to
the string 'OK'.
After the update is done, the PL/SQL procedure calls the report again.
Since the report only select records where col1 is null, the updated
records will not be displayed when the report is called again.
Step 1 - Create Table
From Sqlplus, log in as scott/tiger and execute the following:
drop table chkbox_example;
create table chkbox_example
(id varchar2(10) not null,
comments varchar2(20),
col1 varchar2(10));
Step 2 - Insert Test Data
From Sqlplus, still logged in as scott/tiger , execute the following:
declare
l_i number;
begin
for l_i in 1..50 loop
insert into chkbox_example values (l_i, 'Comments ' || l_i , NULL);
end loop;
commit;
end;
Step 3 -Create SQL Query based WEBDB report
Logon to a WEBDB site which has access to the database the above tables are created.
Create a SQL based Report.
Name the report :RPT_CHKBOX
The select statement for the report is :
select c.id, c.comments, c.col1,
htf.formcheckbox('p_qty',c.id) Tick
from SCOTT.chkbox_example c
where c.col1 is null
In Advanced PL/SQL, (REPORT, Before displaying the form), put the following code
htp.formOpen('scott.chkbox_process');
htp.formsubmit('p_request','Update');
htp.br;
htp.br;
Step 4 - Create a stored procedure in the database
Log on to the database as scott/tiger and execute the following to create the
procedure.
Note: Replace WEBDB to the appropriate webdb user for your installation.
In my database, I had installed webdb using WEBDB username, hence user webdb owns
the packages.
create or replace procedure chkbox_process
( p_request in varchar2 default null,
p_qty in wwv_utl_api_types.vc_arr ,
p_arg_names in wwv_utl_api_types.vc_arr ,
p_arg_values in wwv_utl_api_types.vc_arr
is
i number;
begin
for i in 1..p_qty.count loop
if p_qty(i) is not null then
begin
update chkbox_example
set col1 = 'OK'
where chkbox_example.id = p_qty(i);
end;
end if;
end loop;
commit;
/* To Call Report again after updating */
SCOTT.RPT_CHKBOX.show
(p_request=>'Run Report',
p_arg_names=>webdb.wwv_standard_util.string_to_table2(' '),
p_arg_values=>webdb.wwv_standard_util.string_to_table2(' '));
end;
Summary
There are essentially 2 main modules, The WEBDB report and the pl/sql procedure (chkbox_process)
A button is created via the advanced pl/sql coding which shows on top of the report. (The
button cannot be placed at the bottom of the report due to the way WEBDB creates the procedure
internally)
When any button is clicked on the report, it calls the pl/sql procedure chkbox_process.
The procedure is called , WEBDB always passes the parameters p_request,p_arg_names and o_arg_values.
p_qty is another parameter that we are passing additionally, This comes from the checkbox created
using the htf.formcheckbox in the report select statement.
The pl/sql procedure calls the report again after processing. This is done to
show how to call the report.
Restrictions:
-The Next and Prev buttons on the report will not work.
So it is important that the report can fit in 1 page only.
(This may mean that you will not select(not ticked) 'Paginate' under
'Display Option' in the WEBDB report. If you do this,
then in Step 4, remove p_arg_names and p_arg_values as input parameters
to the chkbox_process)If your not so sure you can use the instanceof
insurance,
Object o = evt.getSource();
if (o instanceof Button) {
Button source = (Button) o;
I haven't thoroughly read the thread, but I use something like this:if (evt.getSource() == someObjRef) {
// do that voodoo
]I haven't looked into why you'd be creating a new reference... -
Difficulties replacing some BC functionality with XI (refer to example)
<b>Difficulties replacing some BC functionality with XI (refer to example)</b>
I am transferring all interface processing from BC to XI and am having difficulties replacing some of the current BC functionality. Please refer to my example below
<b>Current process</b>
<b>SAP R/3</b>
SAP R/3 executes an abap that extracts certain data. This data is passed via a remote function which is configured to point to Business Connector
<b>Business Connector</b>
Business Connector takes control and the relevant package does some internal processing then calls the remote enabled function BAPI_ACC_BILLING_POST
<b>SAP R/3</b>
Control is returned to SAP R/3 to post the data and on completion control is returned to Business Connector
<b>Business Connector</b>
Business Connector again takes control where some more processing is done to generate an xml version of the data prior to returning control back to SAP R/3
<b>SAP R/3</b>
Control is returned to the abap immediately following the call to the remote function and processing completes
The initial synchronous call from SAP R/3 to Business Connector remains open whilst Business Connector executes a subsequent synchronous call to SAP R/3.
Finally the initial synchronous call in SAP R/3 completes
<b>Proposed Process</b>
I am transferring all interface processing from BC to XI and am having difficulties replacing some of the current BC functionality. In this instance I can set up the initial synchronous call via an XI Integration Process (sync/async bridge). This allows me to perform subsequent asynchronous calls prior to closing the synchronous bridge
I have successfully performed synchronous calls to SAP R/3 from XI for different scenarios and have set up the XI design and config in the same manner
When I try to perform the synchronous posting back to SAP R/3 from within the SA bridge I get the message Message is incomplete. No Sender found
Unlike BC, it appears that XI does not allow me to perform the synchronous posting back to SAP R/3 from within the SA bridge.
<b>Refer to</b> http://help.sap.com/saphelp_nw04/helpdata/en/83/d2a84028c9e469e10000000a1550b0/frameset.htm <b>for the SAP description</b> To enable the communication between a synchronously calling business system (synchronous outbound interface) and an asynchronously called business system (asynchronous inbound and outbound interface), you can define a sync/async bridge in an integration process. You can only define one sync/async bridge for each integration process.
How can I replace the current BC functionality using XI?
Regards,
MikeHi all,
I cannot replicate the current BC functionality in XI
So I will take this opportunity to simplify and improve the design for XI --> R/3
Regards,
Mike -
Hello All,
The OSB Release 11gR1 (11.1.1.4.0) doesn't install with WLS 10.0, and it seems to be installed sucessfully with WLS 10.3.4.
Now, when trying to create a server in OEPE Release 11gR1, it complains as it requires WLS 10.0 binary!!
Big confusion when you try to use these new versions.
Any hint, direction?
Regards,
RagaeThe OSB Release 11gR1 (11.1.1.4.0) doesn't install with WLS 10.0, and it seems to be installed sucessfully with WLS 10.3.4.Yes, it is because WLS 10.0 is 10g release and Weblogic 10.3.4 is 11g R1 release. Morever, OSB 11.1.1.4 (OSB 11g R1 PS3) is compatible with Weblogic 11g R1 PS3 (10.3.4) only.
Now, when trying to create a server in OEPE Release 11gR1, it complains as it requires WLS 10.0 binary!!OEPE supports the following versions of Oracle WebLogic Server:
11g Release 1 Patch Set 3
11g Release 1 Patch Set 2
11g Release 1 Patch Set 1
11g Release 1
10g Release 3
10.0
9.2
Note that there is limited support for versions 9.1, 9.0, and 8.1.
While creating a server in OEPE choose appropriate server version in "Server Type" option.
Regards,
Anuj -
Using updated tools with WLS 8.1 SP3
I'm attempting to take advantage of some ant 1.6 features. However, it appears that the ant XML parsers are getting in the way of the embedded WLS xml parsers:
[servicegen] java.lang.ClassCastException
[servicegen] at weblogic.apache.xerces.parsers.SAXParser.<init>(SAXParser.java:140)
[servicegen] at weblogic.apache.xerces.parsers.SAXParser.<init>(SAXParser.java:125)
[servicegen] at weblogic.apache.xerces.jaxp.SAXParserImpl.<init>(SAXParserImpl.java:102)
[servicegen] at weblogic.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParserImpl(SAXParserFactoryImpl.java:112)
[servicegen] at weblogic.apache.xerces.jaxp.SAXParserFactoryImpl.setFeature(SAXParserFactoryImpl.java:140)
[servicegen] at weblogic.xml.jaxp.WebLogicSAXParserFactory.setFeature(WebLogicSAXParserFactory.java:56)
[servicegen] weblogic.utils.AssertionError: ***** ASSERTION FAILED *****[ Cannot invoke boolean constructor of processor ] - with nested exception:
[servicegen] [java.lang.reflect.InvocationTargetException - with target exception:
[servicegen] [weblogic.utils.AssertionError: ***** ASSERTION FAILED ***** - with nested exception:
[servicegen] [java.lang.ClassCastException]]]
Based on some research this appears to be an issue with WLS getting a parser that it cannot handle. Given that the version of ant included with 8.1sp3 is pretty old, is there a way to use newer versions? I'm giving up for now on macrodef's but would, as a general statement, like to keep up with new tools as they become available. I'd like to not be dependent on turning a battleship to incorporate 15 months of development work (the time between now and the release of ant 1.5.3 as included with 8.1sp3).
Thanks for any information.Had some problems like this before. Even thought I cannot offer specific advice as to how to fix this. If you do this, it could help.
Encountered a problem in eclipse while using WLS servicegen ANT task and, of course, the optional FTP task. I am using Eclipse Version: 3.0.0 Build id: 200406192000. With this comes ANT 1.6.1 standard. In order to get servicegen ANT task working I had to include the weblogic.jar in the ANT Classpath. Ofcourse this had another side effect, the FTP task that used to work earlier quit working. I still havent figured out the root cause of the problem but inorder to get around I did the following. To fix this, I added a new Task called FTP, I picked the c:\....\lib\ant-commons-net.jar in the location. The name I retained it as ftp. In the left page, I nagivated down to the lead of the tree [root]/->org->apache->...->net and in the right pane, I chose FTP. After this step when I ran I ran into an odd error Buildfile: C:\Work\JSSE-EJB.xml BUILD FAILED: java.lang.NoClassDefFoundError: com/oroinc/net/ftp/FTP Total time: 78 milliseconds I was under the impression that this is a legacy component and that the new version of the net component has org.apache....FTP structure. I am really not sure where, but to fix the issue, I had to get the NetComponents.jar from http://www.savarese.org/downloads/NetComponents/ and included it in the classpath. After this step, presto, servicegen task works fine with FTP task. However, I cannot imagine doing this for all the optional tasks. But for now there is a winding work around. -
Problems with WLS 7.0 and NES plug-in
Hi,
I am not able to configure NES with weblogic 7.0. I created a domain
with an admin server and 3 clustered servers. When I tried to configure
NES it is giving me these errors.
[06/May/2002:18:41:26] failure ( 1530): Invalid configuration: File
/data/iasuser2/webserver/https-ias02.mygazoo.com/config/server.x
ml, line 32, column 15: Error processing obj.conf line 1: init functions
are not allowed in this objset
Also below are the lines copied from obj.conf that I added.
Init fn="load-modules" funcs="wl_proxy,wl_init"\
shlib=/data/iasuser2/webserver/https-ias02.mygazoo.com/libproxy.so
Init fn="wl_init"
<Object name="weblogic" ppath="*/weblogic/*">
Service fn=wl_proxy \
WebLogicCluster="localhost:7001,localhost:7002,\
localhost:7003" PathTrim="/weblogic"
</Object>
Is NES plug-in supported with WLS 7.0. My version of iPlanet webserver
is 6.0 and I am on Solaris 8.
Shiva.Hi,
I am not able to configure NES with weblogic 7.0. I created a domain
with an admin server and 3 clustered servers. When I tried to configure
NES it is giving me these errors.
[06/May/2002:18:41:26] failure ( 1530): Invalid configuration: File
/data/iasuser2/webserver/https-ias02.mygazoo.com/config/server.x
ml, line 32, column 15: Error processing obj.conf line 1: init functions
are not allowed in this objset
Also below are the lines copied from obj.conf that I added.
Init fn="load-modules" funcs="wl_proxy,wl_init"\
shlib=/data/iasuser2/webserver/https-ias02.mygazoo.com/libproxy.so
Init fn="wl_init"
<Object name="weblogic" ppath="*/weblogic/*">
Service fn=wl_proxy \
WebLogicCluster="localhost:7001,localhost:7002,\
localhost:7003" PathTrim="/weblogic"
</Object>
Is NES plug-in supported with WLS 7.0. My version of iPlanet webserver
is 6.0 and I am on Solaris 8.
Shiva. -
Oracle wallet(oraclepki.jar) is not working with WLS 10.3.1
An external application is storing a password in oracle wallet i.e cwallet.sso and ewallet.p12 files using OracleWallet technology (oraclepki.jar).
I have an web application which uses this password stored in the wallet for internal use, this application works fine if we deploy it in OC4J, but if Install the same application in WLS 10.3.1 application is not able to get the password for wallet.
Oracle wallet require only oraclepki.jar file and this jar file is bundled in the ear file.
Can someone guide me so that we can use Oracle wallet with WLS.Hi
For me no error is showing. But the whitespace is not getting removed. But this is working fine in Tomcat6.1.
Any help is appreciated.
regards
jossy. -
Installation of webgate on Solaris (sparcv9) with WLS 10.3.5 and Apache2
Problem Description: We have installed IDM 11g and OAM 10.1.4.3 on RHEL5.5 hosts, respectively. We have successfully installed all the components:
Environment Details:
- Server1 -- 64 bit Intel RHEL5
Fusion Middleware Identity Management - 11.1.1.2
WLS 10.3.2
ODSM,OID,OVD
DB 10.2.0.4
- Server 2 32-bit Intel RHEL5
OAM 10.1.4.3
OHS 11.1.1.2
After successfully installing these hosts, we needed to create a webhost from where we could test our protected resources. This host would have a sparc v9 OS, include WLS 10.3.5, and use apache2 as its web server. These have all been successfully installed by root and are running.
Our next step was to create the webgate/access gate on the OAM host and setup the necessary policy. This was successful.
We then copied Oracle_Access_Manager10_1_4_3_0_sparc-s2_APACHE2_WebGate to the host and started the installation. Since the host is headless (just a host -- no keyboard, mouse, or gui attached to it) we have to ssh to the host and execute all the installs from the command line without gui. When we got to entering the webgate id and hit return... the process just ended without any error or logfiles. We are assuming that at that point the webgate software was installed but not configured.
We went ahead and tried the configureWebGate script:
./start_configureWebGate -i /opt/oracle/middleware/webgate -l WebGate
ld.so.1: configureWebGate: fatal: /opt/oracle/middleware/webgate/access/oblix/tools/configureWebGate/../../../oblix/lib/libstdc++.so.5: wrong ELF data format: ELFDATA2LSB
Killed
We have successfully installed OAM and IDM many times and have installed webhosts as well... but the webhosts have always been RHEL5 with WLS and OHS instead of Sparc, wls, and apache. Is there anything special about a sparc or apache install?
WLS and apache were installed as root... we have tried installing the webgate as root, oracle, even apache... but get the same results. The gcc libs are downloaded and available, but the error we see during configuration seems to indicate that they are not found. We have tried seting the LD_LIBRARY_PATH to include the directory containing the libs.
Edited by: OldGuy on Jul 7, 2011 4:04 AMOn another note... is there a Sparc equivalent for the mod_wl_ohs.conf where we would place
<Location /<deployed app>>
SetHandler weblogic-handler
WebLogicHost <weblogichost>
WebLogicPort 7001
</Location>
It appears that this goes into the apache httpd.conf file, correct? Or does the mod_wl_ohs.conf equivalent exist?
We have just about completed everything in regard to being able to include a solaris host in our list of hosts that are tied to OAM. The webgate was created and software installed, the deployed app protected, etc... Everything that we have done for Linux and XP in the past we have done for this Sparc host.
When we try to access the Sparc's protected uri... nothing happens. The browser stays blank... the url does not change to display the oamsso login.html (as the other installs do)... nothing is returned... no error, no remarks, no logfile entries... just a blank browser.
Maybe you are looking for
-
Spry menu bar not working in Contribute
I have created a site in Dreamweaver which my client will edit in Contribute. However when i view the site in Contribute - the Spry menu bar doesn't show up like it did in Dreamweaver. instead it shows up like a text list. Has anyone run into this is
-
How to access my mail from another computer. Both iPads
HHow to access my mail from another computer. Both iPads. Both iCloud.
-
JDBC Stored procedure help required
Hi All, Please let me know simple blogs how to use JDBC Stored procedure or any other method in receiver jdbc adapter to insert or select in 2 tables Please let me know simple blogs how to use JDBC Stored procedure or any other method in sender jd
-
More Startup-Error on ORACLE 9i
Hi I have an ORACLE 9i Database (V9.2.0.4.0) running under RedHat. But since rebooting my system i was not able to restart my Database. Env-Variables are all set correctly and the log files do not show any error-messages. While analysing the startup-
-
SQL Developer 3 crashes when opening a local 172mB SQL file
The crash occurs when trying to open a 172mB SQL file from my local C:\ drive on Windows 7 Ultimate 32-bit, running on a typical quad-core AMD Phenom CPU with the usual 3.3gb of RAM. Crash dump as follows: java.io.IOException: exception loading C:\..