JAVA IDS handle problems
Hi, I am running a servlet that access a Btrieve Database using IDS, but when I trace the handles used by dataserv.exe (the executable of IDS), it (the number of handles) keeps growing everytime the serrvlet is invoked.
Now if I run a java program, the handles are released when the program is finished.
How can I release the handles when the servlet has finished processing the request??
I tried using destroy() but it didn't work.
Then I tried using System.exit(0) but it kills the application servlet and I cannot run another servlet again.
Any help would be appreciated.
Thanks
Hi Jpineda,
It seems that you can make a connection to BTrieve data base from a servlet. Could you show me where you can obtain the api and how to use it.
With kind regards,
TLe
Similar Messages
-
GUI event handling problems appear in 1.4.1 vs. 1.3.1?
Hi,
Has anyone else experienced strange event handling problems when migrating from 1.3.1 to 1.4.1? My GUI applications that make use of Swing's AbstractTableModel suddenly don't track mouse and selection events quickly anymore. Formerly zippy tables are now very unresponsive to user interactions.
I've run the code through JProbe under both 1.3 and 1.4 and see no differences in the profiles, yet the 1.4.1 version is virtually unusable. I had hoped that JProbe would show me that some low-level event-handling related or drawing method was getting wailed on in 1.4, but that was not the case.
My only guess is that the existing installation of 1.3.1 is interfering with the 1.4.1 installation is some way. Any thoughts on that before I trash the 1.3.1 installation (which I'm slightly reluctant to do)?
My platform is Windows XP Pro on a 2GHz P4 with 1GB RAM.
Here's my test case:
import javax.swing.table.AbstractTableModel;
import javax.swing.*;
import java.awt.*;
public class VerySimpleTableModel extends AbstractTableModel
private int d_rows = 0;
private int d_cols = 0;
private String[][] d_data = null;
public VerySimpleTableModel(int rows,int cols)
System.err.println("Creating table of size [" + rows + "," + cols +
d_rows = rows;
d_cols = cols;
d_data = new String[d_rows][d_cols];
int r = 0;
while (r < d_rows){
int c = 0;
while (c < d_cols){
d_data[r][c] = new String("[" + r + "," + c + "]");
c++;
r++;
System.err.println("Done.");
public int getRowCount()
return d_rows;
public int getColumnCount()
return d_cols;
public Object getValueAt(int rowIndex, int columnIndex)
return d_data[rowIndex][columnIndex];
public static void main(String[] args)
System.err.println( "1.4..." );
JFrame window = new JFrame();
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
Dimension size = new Dimension(500,500);
panel.setMinimumSize(size);
panel.setMaximumSize(size);
JTable table = new JTable(new VerySimpleTableModel(40,5));
panel.add(table);
window.getContentPane().add(panel);
window.setSize(new Dimension(600,800));
window.validate();
window.setVisible(true);
Thanks in advance!!
- DeanHi,
I've fixed the problem by upgrading to 1.4.1_02. I was on 1.4.1_01.
I did further narrow down the symptoms more. It seemed the further the distance from the previous mouse click, the longer it would take for the table row to highlight. So, clicking on row 1, then 2, was much faster than clicking on row 1, then row 40.
If no one else has seen this problem -- good! I wouldn't wish the tremendous waste of time I've had on anyone!
- Dean -
Delicate ProgressMonitor/ event handling problem
Hi,
I have a delicate ProgressMonitor / event handling problem.
There exists some solution on similiar problems here in the forums, but no solution to my special problem, hope anybody can help me out.
I have a rather big project, an applet, that I've written a separate JarLoader class that will load specific jar's if the ClassLoader encounter a unloaded class, all ok so far.
But, during loading, I would like to display a ProgressBar. And here is the problem. If my custom ClassLoader intercepts a findClass -request that needs to load the class from a jar from a normal thread, this is no problem, but if the ClassLoader intercepts a findClass that needs loading a jar when inside the EventQueue -thread, this is becomming tricky!
The catch is that an event posted on the EventQueue finally needs a class that needs to be loaded, but I cannot dispatch a thread to do this and end that particular event before the class itself is loaded.
So how do I hold the current EventQueue -event needing a jar -load, Pop up a ProgressBar, then process events in the EventQueue to display the ProgressBar and update repaints in it? then return from the event that now have loaded needed class-files.
I've tried a tip described earlier in the forums by trying to handle events with this code when loading the Jar:
/** process any waiting events - use during long operations
* to update UI */
static public void doEvents() {
// need to derive from EventQueue otherwise
// don't have access to protected method dispatchEvent()
class EvtQueue extends java.awt.EventQueue {
public void doEvents() {
Toolkit toolKit = Toolkit.getDefaultToolkit();
EventQueue evtQueue = toolKit.getSystemEventQueue();
// loop whilst there are events to process
while (evtQueue.peekEvent() != null) {
try {
// if there are then get the event
AWTEvent evt = evtQueue.getNextEvent();
// and dispatch it
super.dispatchEvent(evt);
catch (java.lang.InterruptedException e) {
// if we get an exception in getNextEvent()
// do nothing
// create an instance of our new class
EvtQueue evtQueue = new EvtQueue();
// and call the doEvents method to process the events.
evtQueue.doEvents();
}Then, the loader checks
java.awt.EventQueue.isDispatchThread()to see if its' inside the eventqueue, and runs doEvents after updating the ProgressMonitor with new setProgress and setNote values.
More precise;
The loader is loading the jar like this:
(this is pseudo code, not really usable, but outlines the vital parts)
public void load() {
monitor = new ProgressMonitor(null, "Loading " + jarName, ""+jarSize + " bytes", 0, jarSize);
monitor.setMillisToDecideToPopup(0);
monitor.setMillisToPopup(0);
// reading jar info code here ...
JarEntry zip = input.getNextJarEntry();
for (;zip != null;) {
// misc file handling here... total = current bytes read
monitor.setProgress(total);
monitor.setNote(note);
if (java.awt.EventQueue.isDispatchThread()) {
doEvents();
zip = input.getNextJarEntry();
monitor.close();
}When debugging doEvents(), there is never any events pending in peekEvents(), even if I tries to put a invokeLater() to run the setProgress on the monitor, why? If it had worked, the doEvents() code would have saved my day...
So, this is where I'm totally stuck...Just want to describe how I did this using spin from http://spin.sourceforge.net
This example is not pretty, but it can probably help others understanding spin. Cancelling the ProgressMonitor is not implemented, but can easily be done by checking on ProgressMonitor.isCanceled() in
the implementation code.
First, I create a bean for displaying and run a ProgressMonitor:
Spin requires an Interface and an Implementation, but that's just nice programming practice :-)
import java.util.*;
public interface ProgressMonitorBean {
public void start(); // start spinning
public void cancel(); // cancel
public int getProgress(); // get the current progress value
public void setProgress(int progress); // set progress value
public void addObserver(Observer observer); // observer on the progressValue
}Then, I created the implementation:
import java.util.*;
import javax.swing.ProgressMonitor;
import java.awt.*;
public class ProgressMonitorBeanImpl extends Observable implements ProgressMonitorBean {
private ProgressMonitor monitor;
private boolean cancelled;
private int progress = 0;
private int currentprogress = 0;
public ProgressMonitorBeanImpl(Component parent, Object message, String note, int min, int max) {
monitor = new ProgressMonitor(parent, message, note, min, max);
monitor.setMillisToDecideToPopup(0);
monitor.setMillisToPopup(0);
public void cancel() {
monitor.close();
public void start() {
cancelled = false;
progress = 0;
currentprogress = 0;
while (progress < m_cMonitor.getMaximum()) {
try {
synchronized (this) {
wait(50); // Spinning with 50 ms delay
if (progress != currentprogress) { // change only when different from previous value
setChanged();
notifyObservers(new Integer(progress));
monitor.setProgress(progress);
currentprogress = progress;
} catch (InterruptedException ex) {
// ignore
if (cancelled) {
break;
public int getProgress() {
return progress;
public void setProgress(int progress) {
this.progress = progress;
}in my class/jarloader code, something like this is done:
public void load() {
ProgressMonitorBean monitor = (ProgressMonitorBean)Spin.off(new ProgressMonitorBeanImpl(null, "Loading " + url,"", 0, jarSize));
Thread t = new Thread() {
public void run() {
JarEntry zip = input.getNextJarEntry();
for (;zip != null;) {
// misc file handling here... progress = current bytes read
monitor.setProgress(progress);
t.start(); // fire off loadin into own thread to do time consuming work
monitor.start(); // this will spin events on monitor and block until progress = max
monitor.cancel(); // Just make sure ProgressMonitor is closed
}The beautiful thing here is that Spin is taking care of weither the load() is inside the dispatch thread or not, making the code much simpler and cleaner to understand.
The ProgressMonitorBeanImplementation could been made much nicer and more complete, but I was in a hurry to check if it worked out. And it did! This will be applied on a lot of gui -components that blocks the event-queue in our project, making it much more responsive.
Hope this will help others in similiar situations! Thanks again svenmeier for pointing me to the spin -project. -
Oc4j java.protocol.handler.pkgs
Can anyone help, I would like to set java.protocol.handler.pkgs to "com.evermind.protocol|com.sun.net.ssl.internal.www.protocol"
I have tried to modify the default from com.evermind.protocol, using -D and tried to provide the new setting in oc4j.properties. Neither have the desired effect. I have a workaround (set at runtime), but would like to set in *.xml.
In addition, I have looked at the ApplicationServer.class file and I think the above property is 'hardcoded' in the class.
Any help would be appreciated.Hi Deepak,
Thanks for the reply.
No. The tutorial sample is not deployed to the standalond oc4j server. Instead, I am trying to deploy it against the application server.
I had the problem when setting up the connection to the standalone oc4j server. The connection error was "Error When getting MBeanServer EJB" when selecting Standalone OC4J, or "javax.naming.NamingException [Root exception is java.io.EOFException]" when selecting Standalone OC4J 10.1.3.
Thanks.
- DCFL -
sir i have given lot of effort but i am not able to solve my problem either with notifiers or with occurence fn,probably i do not know how to use these synchronisation tools.
sir i am using datasocket read ,i am communicating with java but my problem is that bcz im using while loop to see if value has changed my labview consumes all the processors time ,sir i want a event like thing so that while loop is not in continuous loopHi Sam,
I want to pass along a couple of tips that will get you more and better response on this list.
1) There is an un-written rule that says more "stars" is better than just one star. Giving a one star rating will probably eliminate that responder from individuals that are willing to anser your question.
2) If someone gives you an answer that meets your needs, reply to that answer and say that it worked.
3) If someone suggests that you look at an example, DO IT! LV comes with a wonderful set of examples that demonstate almost all of the core functionality of LV. Familiarity with all of the LV examples will get you through about 80% of the Certified LabVIEW Developer exam.
4) If you have a question first search the examples for something tha
t may help you. If you can not find an example that is exactly what you want, find one that is close and post a question along the lines of "I want to do something similar to example X, how can I modify it to do Y".
5) Some of the greatest LabVIEW minds offer there services and advice for free on this exchange. If you treat them good, they can get you through almost every challenge that can be encountered in LV.
6) If English is not your native language, post your question in the language you favor. There is probably someone around that can help. "We're big, we're bad, we're international!"
Trying to help,
Welcome to the forum!
Ben
Ben Rayner
I am currently active on.. MainStream Preppers
Rayner's Ridge is under construction -
Exception Handling Problem In BPM
All
I am facing an exception handling problem I am using BPM and , I have caught exception in the transformation step but when there is any data problem in that mapping(mentioned in the transformation)
it is not throwing the exception . is there any option to collect these type of system exception in the bpm and give a alert thru mail
is there any way to collect these type of exception happened in the BPE and raise alert thru generic alert
Thanks
JayaramanHi Jayaraman,
When you say there is any data problem, does that fail the message mapping that you have defined?
If the message mapping used in the tranformation fails, it should raise an exception in the BPM.
Did you test the message mapping using the payload and see if it really fails or not?
Regards,
Ravi Kanth Talagana -
Re Java Stored Procedure Problem
Ben
There appear to be some problem with the forum. It doesn't want to show my response to your post with the subject "Java Stored Procedure Problem". See the answer to this thread for an example of how to do this...
Is there a SAX parser with PL/SQL??Ben
There appear to be some problem with the forum. It doesn't want to show my response to your post with the subject "Java Stored Procedure Problem". See the answer to this thread for an example of how to do this...
Is there a SAX parser with PL/SQL?? -
I'm in the process of publishing the following note (134280.1), titled "How to Resolve ORA-29532 Java 2
Permission Problems in RDBMS 8.1.6 and 8.1.7".
It will be accessible from Oracle Support's "Metalink" site.
"How to Resolve ORA-29532 Java 2 Permission Problems in RDBMS 8.1.6 and 8.1.7".
Problem Description
Periodically an application running in the Enterprise Java Engine
(EJE) formerly known as the "Oracle 8i JVM", "the JSERVER component", or
the "Aurora JVM" will fail with a "java 2" permissions error having the
following format :
Note : Message shown below have been reformatted for easier readability.
java.sql.SQLException: ORA-29532: Java call terminated by uncaught Java exception:
usually followed by a detailed error message similar to one of the following
messages :
Example # 1
java.security.AccessControlException: the Permission
(java.net.SocketPermission hostname resolve)
has not been granted by dbms_java.grant_permission to
SchemaProtectionDomain(SCOTT|PolicyTableProxy(SCOTT))
Example # 2
java.security.AccessControlException: the Permission
(java.util.PropertyPermission * read,write)
has not been granted by dbms_java.grant_permission to
SchemaProtectionDomain(SCOTT|PolicyTableProxy(SCOTT))
Example # 3
java.security.AccessControlException: the Permission
(java.io.FilePermission \matt1.gif read)
has not been granted by dbms_java.grant_permission to
SchemaProtectionDomain(SCOTT|PolicyTableProxy(SCOTT))
Explanation
The java 2 permission stated in line # 2 of each of the above "Examples"
has not been granted to the user specified in line 4 of the above "Examples".
Solution Description
The methodology to solve this issue is identical for all java 2 permissions
cases.
1) Format a call "dbms_java.grant_permission" procedure as described below.
2) Logon as SYS or SYSTEM
3) Issue the TWO commands shown below
4) Logoff as SYS or SYSTEM
5) Retry your application
For Example # 1
1) Logon as SYS or SYSTEM
2) Issue the following commands :
a) call dbms_java.grant_permission('SCOTT',
'java.net.SocketPermission',
'hostname',
'resolve');
b) commit;
Note: Commit is mandatory !!
3) Logoff as SYS or SYSTEM
4) Retry your application
For Example # 2
1) Logon as SYS or SYSTEM
2) Issue the following commands :
a) call dbms_java.grant_permission('SCOTT',
'java.util.PropertyPermission',
'read,write');
b) commit;
Note: Commit is mandatory !!
3) Logoff as SYS or SYSTEM
4) Retry your application
For Example # 3
1) Logon as SYS or SYSTEM
2) Issue the following commands :
a) call dbms_java.grant_permission('SCOTT',
'java.io.FilePermission',
'\matt1.gif',
'read');
b) commit;
Note: Commit is mandatory !!
3) Logoff as SYS or SYSTEM
4) Retry your application
References
For more details on java 2 permissions and security within the EJE, review
Chapter 5, in the Java Developer's Guide. entitled,
"Security For Oracle8i Java Applications"
The RDBMS 8.1.7 version can be found at :
http://otn.oracle.com/docs/products/oracle8i/doc_library/817_doc/java.817/index.htmHi, Don,
I solved the problem of security exception I mentioned at java procedure topic as following:
ORA-29532: Java call terminated by uncaught Java exception: java.lang.SecurityException
I tried to use your solution as following:
call dbms_java.grant_permission('SDE', 'java.net.SocketPermission', 'ORCL.COHPA.UCF.EDU','resolve');
but SQL*plus gave me a error message:
invalid collumn.
What's the problem?
However, I call a grant command as following:
SQL> grant JAVASYSPRIV to sde;
and then that exception is gone. What's the difference between dbms_java.grant_permission and grant command?
Thanks
Bing
<BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by don -- oracle support:
I'm in the process of publishing the following note (134280.1), titled "How to Resolve ORA-29532 Java 2
Permission Problems in RDBMS 8.1.6 and 8.1.7".
It will be accessible from Oracle Support's "Metalink" site.
"How to Resolve ORA-29532 Java 2 Permission Problems in RDBMS 8.1.6 and 8.1.7".
Problem Description
<HR></BLOCKQUOTE>
null -
Labview slider event handling problems - revisited
This topic asked a question that was very close to a problem I am having:
Labview slider event handling problems
That is, how do I, using an event structure and/or other means, only read out the value of a slider control after the value change is finalized?
The extra constraint I'd like to place on this, which I believe will invalidate the answer given in the thread above, is that my slider control also has a digital display which can also be used to change the value without ever using the mouse. I cannot look for a value change followed by a mouse-up event if the mouse was not used to change the value.
Any ideas how this might be accomplished? FWIW, I am using LabVIEW 7.0Each and every incremental value-change event generated by the movement of the slider is still detected and queued up for use by the event structure and the event structure loop wades through them all before it's done.
I have come up the attached "fix" (LV v7.0) for this problem. While it is not as clean a solution as I had hoped it would be, it's the best I can manage given what LabVIEW offers me to work with and it does work in the situation where I need to use it.
Now, within the Finalize Slider Events subVI, I'm keeping track of the most-recent values seen by the subVI, checking to see if they have changed, and reporting out that fact. That gives me a Changed/Not-Changed bit within the event case that I can use to control what code then gets executed. If the event case is just playing catch-up to the real value of the control, I can now see that fact and ignore it.
In this version I've also dumped the variant output and limited the VI to using DBL values. I decided it added complication to something that was too complicated already and I wanted the output terminals for other purposes anyway (reporting of the correct "OldVal" of the control).Message Edited by Warren Massey on 04-28-2005 03:56 AM
Attachments:
slider_events[5].llb 77 KB -
Java.util.logging - Problem with setting different Levels for each Handler
Hello all,
I am having issues setting up the java.util.logging system to use multiple handlers.
I will paste the relevant code below, but basically I have 3 Handlers. One is a custom handler that opens a JOptionPane dialog with the specified error, the others are ConsoleHandler and FileHandler. I want Console and File to display ALL levels, and I want the custom handler to only display SEVERE levels.
As it is now, all log levels are being displayed in the JOptionPane, and the Console is displaying duplicates.
Here is the code that sets up the logger:
logger = Logger.getLogger("lib.srr.applet");
// I have tried both with and without the following statement
logger.setLevel(Level.ALL);
// Log to file for all levels FINER and up
FileHandler fh = new FileHandler("mylog.log");
fh.setFormatter(new SimpleFormatter());
fh.setLevel(Level.FINER);
// Log to console for all levels FINER and up
ConsoleHandler ch = new ConsoleHandler();
ch.setLevel(Level.FINER);
// Log SEVERE levels to the User, through a JOptionPane message dialog
SRRUserAlertHandler uah = new SRRUserAlertHandler();
uah.setLevel(Level.SEVERE);
uah.setFormatter(new SRRUserAlertFormatter());
// Add handlers
logger.addHandler(fh);
logger.addHandler(ch);
logger.addHandler(uah);
logger.info(fh.getLevel().toString() + " -- " + ch.getLevel().toString() + " -- " + uah.getLevel().toString());
logger.info("Logger Initialized.");Both of those logger.info() calls displays to the SRRUserAlertHandler, despite the level being set to SEVERE.
The getLevel calls displays the proper levels: "FINER -- FINER -- SEVERE"
When I start up the applet, I get the following in the console:
Apr 28, 2009 12:01:34 PM lib.srr.applet.SRR initLogger
INFO: FINER -- FINER -- SEVERE
Apr 28, 2009 12:01:34 PM lib.srr.applet.SRR initLogger
INFO: FINER -- FINER -- SEVERE
Apr 28, 2009 12:01:40 PM lib.srr.applet.SRR initLogger
INFO: Logger Initialized.
Apr 28, 2009 12:01:40 PM lib.srr.applet.SRR initLogger
INFO: Logger Initialized.
Apr 28, 2009 12:01:41 PM lib.srr.applet.SRR init
INFO: Preparing Helper Files.
Apr 28, 2009 12:01:41 PM lib.srr.applet.SRR init
INFO: Preparing Helper Files.
Apr 28, 2009 12:01:42 PM lib.srr.applet.SRR init
INFO: Getting PC Name.
Apr 28, 2009 12:01:42 PM lib.srr.applet.SRR init
INFO: Getting PC Name.
Apr 28, 2009 12:01:42 PM lib.srr.applet.SRR init
INFO: Finished Initialization.
Apr 28, 2009 12:01:42 PM lib.srr.applet.SRR init
INFO: Finished Initialization.Notice they all display twice. Each of those are also being displayed to the user through the JOptionPane dialogs.
Any ideas how I can properly set this up to send ONLY SEVERE to the user, and FINER and up to the File/Console?
Thanks!
Edit:
Just in case, here is the code for my SRRUserAlertHandler:
public class SRRUserAlertHandler extends Handler {
public void close() throws SecurityException {
public void flush() {
public void publish(LogRecord arg0) {
JOptionPane.showMessageDialog(null, arg0.getMessage());
}Edited by: compbry15 on Apr 28, 2009 9:44 AMFor now I have fixed the issue of setLevel not working by making a Filter class:
public class SRRUserAlertFilter implements Filter {
public boolean isLoggable(LogRecord arg0) {
if (arg0.getLevel().intValue() >= Level.WARNING.intValue()) {
System.err.println(arg0.getLevel().intValue() + " -- " + Level.WARNING.intValue());
return true;
return false;
}My new SRRUserAlertHandler goes like this now:
public class SRRUserAlertHandler extends Handler {
public void close() throws SecurityException {
public void flush() {
public void publish(LogRecord arg0) {
Filter theFilter = this.getFilter();
if (theFilter.isLoggable(arg0))
JOptionPane.showMessageDialog(null, arg0.getMessage());
}This is ugly as sin .. but I cannot be required to change an external config file when this is going in an applet.
After much searching around, this logging api is quite annoying at times. I have seen numerous other people run into problems with it not logging specific levels, or logging too many levels, etc. A developer should be able to complete configure the system without having to modify external config files.
Does anyone else have another solution? -
Native - Java Method Call problem - "Wrong Method ID..."
I am writing a 3d game engine using c++, with all the game logic code in Java, for the purpose of making the thing extendible, easily modifyable, etc...
I am using J2SE JDK 1.2.2.
Most things work fine (engine-wise), but i have a few questions about problems i am having getting the JNI to work correctly with calls to Java Methods.
1. If I use FindClass() to get a jclass reference to a named class, I get one number back. If I then instantiate this class, and then call GetObjectClass() with the instance, I get another number, **which doesnt appear to work for anything**. What is going on here? Can the JVM give different jclass numbers for the same class? Is GetObjectClass() supposed to work?
2. Is AllocObject() alright for instantiating Java objects? It does seem to allocate memory, and method calls work to the new object. I am aware that it doesn't call a constructor, but I like that, seeing as the initialization is handled through a different [network-synchronized] means.
3. Using a jclass retrieved using FindClass(), which I store in a global variable, I am able to call methods on an instance that I created in a certain function. I then make sure (?) that the GC can't reclaim the class or object memory by getting a NewGlobalReference to both of them [just to be safe]. However, in a later function, I am unable to call methods using my stored method IDs, ["Wrong Method ID....JVM has been asked to shut down this application in an unusual manner..."]. I am also unable to acquire new methodIDs, as the system returns 0xCCCCCCCC for all method ID queries. Obviously, attempting to use those bogus method IDs results in a JVM crash, in a segment called [2 deep in the untraceable depths of JVM.dll] from the JNI CallVoidMethodV() function. Why is this happening? Is the GC getting in there despite my best efforts? Is it illegal to cache methodIDs, jclass references or jobject references? aaarrggh! :)
Thanks
Chris Forbes
Lead Programmer
Sprocket Interactive
[email protected]Hi Chris,
I hit the same sort of problem, when writing a JVMDI ( VM debugger hook ), in C++.
My question remained unanswered too
http://forum.java.sun.com/thread.jsp?forum=47&thread=461503&tstart=30&trange=30
I didn't try a call to NewGlobalRef, as you did... but it sounds like it could be what I was missing.
I've a couple of ideas, but nothing definite for you.
1) maybe there's more than one classloader, so that multiple copies of the class are loaded
2) ensure you're compiling your DLL with "quad-word" ( 8 byte ) alignment.
Otherwise all your JNI references will be misaligned !
Since the JNI reference maps to a C++ pointer, it's possible that you can't cache any JNI references.
That's my vague feeling on the subject.
As a workaround, you may have to keep requesting any JNI references, eg. jclass & jmethod's, as you need them.
regards,
Owen -
SSO java sample application problem
Hi all,
I am trying to run the SSO java sample application, but am experiencing a problem:
When I request the papp.jsp page I end up in an infinte loop, caught between papp.jsp and ssosignon.jsp.
An earlier thread in this forum discussed the same problem, guessing that the cookie handling was the problem. This thread recommended a particlar servlet , ShowCookie, for inspecting the cookies for the current session.
I have installed this cookie on the server, but don't see anything but one cookie, JSESSIONID.
At present I am running the jsp sample app on a Tomcat server, while Oracle 9iAS with sso and portal is running on another machine on the LAN.
The configuration of the SSO sample application is as follows:
Cut from SSOEnablerJspBean.java:
// Listener token for this partner application name
private static String m_listenerToken = "wmli007251:8080";
// Partner application session cookie name
private static String m_cookieName = "SSO_PAPP_JSP_ID";
// Partner application session domain
private static String m_cookieDomain = "wmli007251:8080/";
// Partner application session path scope
private static String m_cookiePath = "/";
// Host name of the database
private static String m_dbHostName = "wmsi001370";
// Port for database
private static String m_dbPort = "1521";
// Sehema name
private static String m_dbSchemaName = "testpartnerapp";
// Schema password
private static String m_dbSchemaPasswd = "testpartnerapp";
// Database SID name
private static String m_dbSID = "IASDB.WMDATA.DK";
// Requested URL (User requested page)
private static String m_requestUrl = "http://wmli007251:8080/testsso/papp.jsp";
// Cancel URL(Home page for this application which don't require authentication)
private static String m_cancelUrl = "http://wmli007251:8080/testsso/fejl.html";
Values specified in the Oracle Portal partner app administration page:
ID: 1326
Token: O87JOE971326
Encryption key: 67854625C8B9BE96
Logon-URL: http://wmsi001370:7777/pls/orasso/orasso.wwsso_app_admin.ls_login
single signoff-URL: http://wmsi001370:7777/pls/orasso/orasso.wwsso_app_admin.ls_logout
Name: testsso
Start-URL: http://wmli007251:8080/testsso/
Succes-URL: http://wmli007251:8080/testsso/ssosignon.jsp
Log off-URL: http://wmli007251:8080/testsso/papplogoff.jsp
Finally I have specified the cookie version to be v1.0 when running the regapp.sql script. Other parameters for this script are copied from the values specified above.
Unfortunately the discussion in the earlier thread did not go any further but to recognize the cookieproblem, so I am now looking for help to move further on from here.
Any ideas will be greatly appreciated!
/MadsPierre - When you work on the sample application, you should test the pages in a separate browser instance. Don't use the Run Page links from the Builder. The sample app has a different authentication scheme from that used in the development environment so it'll work better for you to use a separate development browser from the application testing browser. In the testing browser, to request the page you just modified, login to the application, then change the page ID in the URL. Then put some navigation controls into the application so you can run your page more easily by clicking links from other pages.
Scott -
Who can help me :)--a problem with java program(reset problem in java )
I do not know how to make the button reset,my program only could reset diagram but button.If any one who could help me to solve this problem.The problem is When the reset button is pressed, the image should immediately revert to the black square, and the 4 widgets listed above should show values that
correspond to the black square.The code like this,first one is shapes:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class shapes extends JFrame {
private JPanel buttonPanel; // panel for buttons
private DrawPanel myPanel; // panel for shapes
private JButton resetButton;
private JComboBox colorComboBox;
private JRadioButton circleButton, squareButton;
private ButtonGroup radioGroup;
private JCheckBox filledButton;
private JSlider sizeSlider;
private boolean isShow;
private int shape;
private boolean isFill=true;
private String colorNames[] = {"black", "blue", "cyan", "darkGray", "gray",
"green", "lightgray", "magenta", "orange",
"pink", "red", "white", "yellow"}; // color names list in ComboBox
private Color colors[] = {Color.black, Color.blue, Color.cyan, Color.darkGray,
Color.gray, Color.green, Color.lightGray, Color.magenta,
Color.orange, Color.pink, Color.red, Color.white, Color.yellow};
public shapes() {
super("Draw Shapes");
// creat custom drawing panel
myPanel = new DrawPanel(); // instantiate a DrawPanel object
myPanel.setBackground(Color.white);
// set up resetButton
// register an event handler for resetButton's ActionEvent
resetButton = new JButton ("reset");
resetButton.addActionListener(
// anonymous inner class to handle resetButton events
new ActionListener() {
// draw a black filled square shape after clicking resetButton
public void actionPerformed (ActionEvent event) {
// call DrawPanel method setShowStatus and pass an parameter
// to decide if show the shape
myPanel.setShowStatus(true);
isShow = myPanel.getShowStatus();
shape = DrawPanel.SQUARE;
// call DrawPanel method setShape to indicate shape to draw
myPanel.setShape(shape);
// call DrawPanel method setFill to indicate to draw a filled shape
myPanel.setFill(true);
// call DrawPanel method draw
myPanel.draw();
myPanel.setFill(true);
myPanel.setForeground(Color.black);
}// end anonymous inner class
);// end call to addActionListener
// set up colorComboBox
// register event handlers for colorComboBox's ItemEvent
colorComboBox = new JComboBox(colorNames);
colorComboBox.setMaximumRowCount(5);
colorComboBox.addItemListener(
// anonymous inner class to handle colorComboBox events
new ItemListener() {
// select shape's color
public void itemStateChanged(ItemEvent event) {
if(event.getStateChange() == ItemEvent.SELECTED)
// call DrawPanel method setForeground
// and pass an element value of colors array
myPanel.setForeground(colors[colorComboBox.getSelectedIndex()]);
myPanel.draw();
}// end anonymous inner class
); // end call to addItemListener
// set up a pair of RadioButtons
// register an event handler for RadioButtons' ItemEvent
squareButton = new JRadioButton ("Square", true);
circleButton = new JRadioButton ("Circle", false);
radioGroup = new ButtonGroup();
radioGroup.add(squareButton);
radioGroup.add(circleButton);
squareButton.addItemListener(
// anonymous inner class to handle squareButton events
new ItemListener() {
public void itemStateChanged (ItemEvent event) {
if (isShow==true) {
shape = DrawPanel.SQUARE;
myPanel.setShape(shape);
myPanel.draw();
}// end anonymous inner class
);// end call to addItemListener
circleButton.addItemListener(
// anonymous inner class to handle circleButton events
new ItemListener() {
public void itemStateChanged (ItemEvent event) {
if (isShow==true) {
shape = DrawPanel.CIRCLE;
myPanel.setShape(shape);
myPanel.draw();
else
System.out.println("Please click Reset button first");
}// end anonymous inner class
);// end call to addItemListener
// set up filledButton
// register an event handler for filledButton's ItemEvent
filledButton = new JCheckBox("Filled", true);
filledButton.addItemListener(
// anonymous inner class to handle filledButton events
new ItemListener() {
public void itemStateChanged (ItemEvent event) {
if (isShow==true) {
if (event.getStateChange() == ItemEvent.SELECTED) {
isFill=true;
myPanel.setFill(isFill);
myPanel.draw();
else {
isFill=false;
myPanel.setFill(isFill);
myPanel.draw();
else
System.out.println("Please click Reset button first");
}// end anonymous inner class
);// end call to addItemListener
// set up sizeSlider
// register an event handler for sizeSlider's ChangeEvent
sizeSlider = new JSlider(SwingConstants.HORIZONTAL, 0, 300, 100);
sizeSlider.setMajorTickSpacing(10);
sizeSlider.setPaintTicks(true);
sizeSlider.addChangeListener(
// anonymous inner class to handle sizeSlider events
new ChangeListener() {
public void stateChanged(ChangeEvent event) {
myPanel.setShapeSize(sizeSlider.getValue());
myPanel.draw();
}// end anonymous inner class
);// end call to addChangeListener
// set up panel containing buttons
buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(4, 1, 0, 50));
buttonPanel.add(resetButton);
buttonPanel.add(filledButton);
buttonPanel.add(colorComboBox);
JPanel radioButtonPanel = new JPanel();
radioButtonPanel.setLayout(new GridLayout(2, 1, 0, 20));
radioButtonPanel.add(squareButton);
radioButtonPanel.add(circleButton);
buttonPanel.add(radioButtonPanel);
// attach button panel & draw panel to content panel
Container container = getContentPane();
container.setLayout(new BorderLayout(10,10));
container.add(myPanel, BorderLayout.CENTER);
container.add(buttonPanel, BorderLayout.EAST);
container.add(sizeSlider, BorderLayout.SOUTH);
setSize(500, 400);
setVisible(true);
public static void main(String args[]) {
shapes application = new shapes();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}second one is drawpanel:
import java.awt.*;
import javax.swing.*;
public class DrawPanel extends JPanel {
public final static int CIRCLE = 1, SQUARE = 2;
private int shape;
private boolean fill;
private boolean showStatus;
private int shapeSize = 100;
private Color foreground;
// draw a specified shape
public void paintComponent (Graphics g){
super.paintComponent(g);
// find center
int x=(getSize().width-shapeSize)/2;
int y=(getSize().height-shapeSize)/2;
if (shape == CIRCLE) {
if (fill == true){
g.setColor(foreground);
g.fillOval(x, y, shapeSize, shapeSize);
else{
g.setColor(foreground);
g.drawOval(x, y, shapeSize, shapeSize);
else if (shape == SQUARE){
if (fill == true){
g.setColor(foreground);
g.fillRect(x, y, shapeSize, shapeSize);
else{
g.setColor(foreground);
g.drawRect(x, y, shapeSize, shapeSize);
// set showStatus value
public void setShowStatus (boolean s) {
showStatus = s;
// return showstatus value
public boolean getShowStatus () {
return showStatus;
// set fill value
public void setFill(boolean isFill) {
fill = isFill;
// set shape value
public void setShape(int shapeToDraw) {
shape = shapeToDraw;
// set shapeSize value
public void setShapeSize(int newShapeSize) {
shapeSize = newShapeSize;
// set foreground value
public void setForeground(Color newColor) {
foreground = newColor;
// repaint DrawPanel
public void draw (){
if(showStatus == true)
repaint();
}If any kind people who can help me.
many thanks to you!4 widgets???
maybe this is what you mean.
add this inside your actionPerformed method for the reset action
squareButton.setSelected(true);
colorComboBox.setSelectedIndex(0);
if not be more clear in your post. -
Mapping ArrayList in java to Actionscript Problem
Hi Guys,
This is wrecking my head. Had this issue for the last two days and cannot for the life of me understand why. I have a service defined as with the following method;
public List getIngredients(){
List list = null;
List ingredientList = new ArrayList();
SandwichDAOFactory fac = SandwichDAOFactory.getDAOFactory(1);
IngredientDAO ingDao = fac.getIngredientDao();
IngredientDTO ingDTO = new IngredientDTO();
Ingredient ing = new Ingredient();
list = ingDao.getAllIngredients();
for (Iterator it=list.iterator(); it.hasNext();) {
ing = (Ingredient) it.next();
ingDTO.setIngredientID(ing.getIngredientID());
ingDTO.setName(ing.getName());
ingDTO.setPrice(ing.getPrice());
ingDTO.setDescription(ing.getDescription());
ingDTO.setType(ing.getDescription());
ingredientList.add(ingDTO);
System.out.println("Calling Service");
System.out.println(list.toString());
return list;
Now I have defined a remotes object in my flex app;
I call this service method when I first load the application;
retrievalService.getAllIngredients();
then handle the result as follows;
private function getAllIngredientsResultHandler(event:ResultEvent):void
ingredientsListData = event.result as ArrayCollection;
var arrList:Array = event.result as Array;
trace("event.result.toString = "+event.result);
trace("ingredientsListData = "+ingredientsListData);
trace("arrList = "+arrList);
I would expect to see the object references delimited in some way for all the trace methods. But when I run the example I get the following output;
event.result.toString = [object IngredientDTO],[object IngredientDTO],[object IngredientDTO],[object IngredientDTO],[object IngredientDTO]
ingredientsListData = null
arrList = null
I dont understand why this is happening. Surely the variables should contain the same info. I did some debugging and found that the event.result object did in fact contain the data as an ArrayCollection. In addition all the elements were objects of the type IngredientDTO and contained all the relevant fields and data. So again I don't understand for the life of me why its not working.
Can you not caste an ArrayList in java to an Array or an ArrayCollection?
Its like the data isn't being mapped or cast properlu from the ArrayList in java to either the Array or the ArrayCollection in actionscript.
This is driving me insane. Has anyone else had this problem and lived to tell the tale?I figured it out. Silly, silly mistake. I was using the wrong import declaration.
import flex.messaging.io.ArrayList;
instead of
import java.util.ArrayList;
Silly silly... -
Hello everyone,
I'm searching for a design pattern / framework to manage exception handling. I'm currently working on a distributed document management system for PC / AS/400, which consists of Commandline clients, a Socket Server and a windows NT daemon in java, which accepts network requests from the Socket Server. Communication is done via serialized Objects.
My Problem is, that exceptions can be thrown either on the server or on the client side and have to be transferred to the user. Error Messages should be read from the database. Exception handling should prefferably take place in a central piece of code, such as the two endpoints of network connections, the SocketServer as service under win32 and another SocketServer as Application on another box, currently with UNIX OS.
thanks in advance for any answers
regardsYou should look into Bridge [GOF:151] and Memento [GOF:273].
Bridge allows you to decouple your mechanism from the implementation memento on how to propergate the decoupled exception information.
Maybe you are looking for
-
After updating to Mavericks, I have been unable to update iphoto, and when I attempt to, it says that These apps were already assigned to another Apple ID, and they will be available in that Apple ID's Purchases list. But no other appleID has ever b
-
COPA Planning-Upload via KE13N
Hi Experts , I am doing COPA planning , but stuck with the excel upload via T code KE13N. -I have defined the planning level on the basis of the sales organisation -Planning packages on basis of years. -Paramater set has also been defined. Integrated
-
HT4914 Match will not download to my computer. It just seems to stall on step 1
I cannot seem to get Match to download. Any ideas or ttricks?
-
How can I read a TDMS 2.0 file using nilibddc.dll
I have written some Matlab software to read TDMS files into Matlab using the MATLAB TDM example and the nilibddc.dll. However, when I create a TDMS version 2.0 file with Labview 2009 I cannot read it into Matlab as I get the error ERROR: TDS Exceptio
-
OK, I've looked through this Forum carefully and tried everything.... Even though cookies for certain web sites (NYTimes, WatchGeeks) appear in Safari Preferenes they don't work, Why? My settings are as follows: Block Cookies from Third Parties, etc.