Problems accessing my "equals" method
Hi every body,
Can any one help me on this? I think is not a big problem but I'm new with this language.
I have a class (with the object constructor)
class TestClass{
String data;
public boolean equals(Object o) {
if ((o != null) && (o instanceof TestClass)){
System.out.println("ifffff");
return data.equals(((TestClass)o).data);
else{
System.out.println("elseeeee");
return false;
and I have the class containing the main method and a method to remove an object from a linked list. The problem is that the program seems to use the "equals method" from Object and no the one I redefine in my TestClass method.
Here is the code of my remove method. Please help (I'm sorry about the variables name I use but I'm writing the code in french)
Object retirer(Object element){
Noeud unNoeud;
Noeud prec = null;
Noeud tmp;
if(estVide()){
System.out.println("Op�ration r�fus�e. La liste est vide");
else {
for (unNoeud = premierNoeud; unNoeud != null; unNoeud = unNoeud.obtenirSuivant()){
if (!element.equals(unNoeud.obtenirElement())){
// ------Even if they are equals, execution keeps entering here
prec = unNoeud;
else {
if (unNoeud == premierNoeud)
return premierNoeud.obtenirSuivant();
else{
tmp = unNoeud.obtenirSuivant();
prec.majSuivant(tmp);
return null;
}
sigh
Crossposted:
http://forum.java.sun.com/thread.jspa?threadID=624690
Similar Messages
-
Please Help!!! Problems access other classes methods
I am having a problem accessing another classes methods varibles. I have tried a number of ways but with no success. Here is my problem:
I have the main(), from there it's calls the class GetVar(), GetVar stores info in Class HousingForVar(), and finially, I have a class TryinToTalkToHousing() that I use to access HousingForVar()'s methods. I know I can use the keyword new but if I do that then it erases over the data I put in. Please can anyone help, this has been driving me nutz all day. Thank you in advance.
Roman03
***EACH CLASS IS A DIFFERENT FILE****
public class TestMain
public static void main( String args[] )
GetVar getVarible = new GetVar();
getVarible.heroF();
import java.util.Scanner;
public class GetVar
public void heroF()
String someEntered;
Scanner input = new Scanner( System.in);
System.out.println("Enter a string: ");
someEntered = input.next();
HousingForVar houseForData = new HousingForVar(someEntered);
System.out.printf("Retieved from Class GetVar, you entered: %s\n", houseForData.getCollectVar() );
import java.util.Scanner;
public class HousingForVar
private String getData;
public HousingForVar(String enterInfo)
getData = enterInfo;
public void setGetVar(String enterInfo)
getData = enterInfo;
public String getCollectVar()
return getData;
import java.util.Scanner;
public class TryinToTalkToHousing
public void someMeth()
String getInfoFromHousing;
System.out.printf("Started out at TryinToTalkToHousing Class\n Retieved from Class GetVar from %s\n",
houseForData.getCollectVar() );
\* I know this doesn't work, but if I make a new object of the class HousingForVar it's going to write over my input, so what do I do? I am still learning, Please help*\I don't use 1.5, so you'll have to convert it back, but see if you can follow the flow of this
import java.io.*;
class TestMain
GetVar getVarible;
public TestMain()
getVarible = new GetVar();
getVarible.heroF();
System.out.println("******");
new TryinToTalkToHousing(this).someMeth();
public static void main(String[] args){new TestMain();}
class GetVar
HousingForVar houseForData;
public void heroF()
try
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter a string: ");
String someEntered = br.readLine();
houseForData = new HousingForVar(someEntered);
System.out.println("Retieved from Class GetVar, you entered: "+houseForData.getCollectVar()+"\n");
catch(Exception e){e.printStackTrace();}
class HousingForVar
private String getData;
public HousingForVar(String enterInfo)
getData = enterInfo;
public void setGetVar(String enterInfo)
getData = enterInfo;
public String getCollectVar()
return getData;
class TryinToTalkToHousing
TestMain parent;
public TryinToTalkToHousing(TestMain t){parent = t;}
public void someMeth()
System.out.println("Started out at TryinToTalkToHousing Class\n"+
"Retieved from Class GetVar, you entered: "+parent.getVarible.houseForData.getCollectVar()+"\n");
} -
Problem accessing local interface methods
Hi all,
I have problems accessing local interfaces of entity beans in OC4J.
My application consists of a session bean as a facade for two local entity beans.
Everytime I try to execute methods on the local interfaces for the entity beans, I receive an exception: "java.lang.InternalError: Illegal removing from cache".
When debugging the application everything seems to be fine until the method calls on the local interfaces (lookups, create methods etc OK). I can even see that the local interface method is acually executed when performing a System.out...! But the method doesn't return to the client (session bean). Instead I revieve the exception above.
I found a similar problem on the orion mail archive (http://www.mail-archive.com/[email protected]/msg17754.html). But there they seem to have problem with removing beans. For me, removing beans works fine too.
Any suggestions would be appreciated.
/johan
[email protected]Hi all,
I have problems accessing local interfaces of entity beans in OC4J.
My application consists of a session bean as a facade for two local entity beans.
Everytime I try to execute methods on the local interfaces for the entity beans, I receive an exception: "java.lang.InternalError: Illegal removing from cache".
When debugging the application everything seems to be fine until the method calls on the local interfaces (lookups, create methods etc OK). I can even see that the local interface method is acually executed when performing a System.out...! But the method doesn't return to the client (session bean). Instead I revieve the exception above.
I found a similar problem on the orion mail archive (http://www.mail-archive.com/[email protected]/msg17754.html). But there they seem to have problem with removing beans. For me, removing beans works fine too.
Any suggestions would be appreciated.
/johan
[email protected] -
Problems accessing my compareTo method
Could you any one help me on this please.
I have 3 classes :
1- "Test class" that creates the object (works fine) and redefines compareTo method
2. "XListeChainee" that manage my linked list :
- insert a new node (problems) in order
3. "Test" which is the classe containing the main method. here is the code
class Test {
public static void test(){
XListeChainee liste = new XListeChainee();
liste.insererOrdonne(new TestClass("A"));
liste.insererOrdonne(new TestClass("B"));
liste.insererOrdonne(new TestClass("C"));
liste.insererOrdonne(new TestClass("E"));
liste.insererOrdonne(new TestClass("D"));
// ------- here is the main method
public static void main(String[] args){//main
Test obj = new Test();/
obj.test();
}//end main
here is the class TestClass with the compareTo method
class TestClass implements Comparable{
String data;
TestClass(String data)
this.data = data;
}//end constructor
public String toString(){
return (data);
public int compareTo(Object o) {
TestClass n = (TestClass)o;
int compData = data.compareTo(n.data);
return compData ;
}//end TestClass
and this is my XListeChainee class (some of the code)
public class XListeChainee
private Noeud premierNoeud; //reference to first node
private Noeud dernierNoeud; //reference to last node
boolean estVide(){
return premierNoeud == null;
// ------ Insert an object: in order
void insererOrdonne(Object element) {
// Creates a new node with the new element
Noeud unNoeud;
unNoeud = new Noeud();
unNoeud.majElement(element) ;
if ( premierNoeud == null ) { // if first node = null
premierNoeud = unNoeud; // new node become first
//------------------------- problem------------------------------
//---- Compare the element in the first node with the element : Doesn't work
// ---- System says that cannot resolve symbol - compareTo
// This line says: if (firstNode.element.compareTo(element)>=0)
else if ( premierNoeud.obtenirElement().compareTo(element) >= 0 ) {
// Le nouvel element est < que le 1er element, alors il est inser� a la tete
unNoeud.majSuivant(premierNoeud);
premierNoeud = unNoeud;
else {
// Chercher la position du nouvel element dans la liste
Noeud parcourir; // un noeud pour parcourir la liste
Noeud prec; //un noeud toujour avant celui qui parcours la liste
parcourir = premierNoeud.obtenirSuivant();
prec = premierNoeud;
while (parcourir != null && parcourir.obtenirElement().compareTo(element) < 0) {
previous = parcourir;
parcours = parcourir.obtenirSuivant();
unNoeud.majSuivant(parcourir); // Insert newNode after previous.
prec.majSuivant(unNoeud);
Could you help me doing this please? I' sorry about some variable and method's names but I'm writing a program in french[snip]
public int compareTo(Object o) {
TestClass n = (TestClass)o;
int compData = data.compareTo(n.data);
return compData ;
}//end TestClass[snip]
: if (firstNode.element.compareTo(element)>=0)
else if (
e if (
premierNoeud.obtenirElement().compareTo(element) >=0
) {What's up with the >=0 business in your method call?
Based on what your method expects (an Object) I
I don't know what you're trying to accomplish there?
Also, please use code tags.Nevermind, after staring at it I can see the closing paranthesis now. -
Problems accessing variables and methods, not sure if this is even possible
Hi
Ive been having problems with a noughts and crosses game. Perhaps i structured it wrong, but i would welcome some advice on how to overcome this problem. I thought i had pretty much completed the game.
What i have so far is a class called Main and it has a gridlayout. i have 9 JPanels called "Choice" on this main frame, Choice contains a button which is either noughts or crosses depending on whose turn it is. Once pressed the button on the JPanel Choice dissappears and is replaced with a image.
Now although this works fine, the problem im having is making all the other Buttons on the Choice Jpanels on the Frame Main to turn to the opposite to what they are. The getters and setters are all there, but i just cant seem to figure out how to send information from the buttons upwards to the frame and then backwards to each of the individual buttons.
It would be easier if i just put it all into one class, but i didnt want it to be messy, is there anyway to send information in this manor?
I tried to add all my code but it said it exceeded the message length. But let me know if you would like it, perhaps i can send it in bits....The only two classes missing are Noughts.java and Cross.java, they are just classes that create images from urls. Hope that helps
package NoughtsAndCrossesButtons;
import javax.swing.*;
import java.awt.*;
public class Cross extends JPanel{
private static Image image;
public Cross(){
try{
image = javax.imageio.ImageIO.read(new java.net.URL("http://upload.wikimedia.org/wikipedia/commons/thumb/5/58/Knotwork-cross-multicolored.svg/600px-Knotwork-cross-multicolored.svg.png"));
}catch(Exception e){
protected void paintComponent(Graphics g)
super.paintComponent(g);
if (image != null)
g.drawImage(image, 0,0,this.getWidth(),this.getHeight(),this);
package NoughtsAndCrossesButtons;
import java.awt.event.*;
import javax.swing.*;
public class Choice extends JPanel implements ActionListener{
private JButton choiceButton = new JButton("Noughts");
private Cross cross = new Cross();
private Noughts nought = new Noughts();
private int x = 5;
private int y = 10;
private int bounds = 100;
private String state = "n";
public Choice(){
this.add(choiceButton);
choiceButton.setBounds(x,y,bounds,bounds);
choiceButton.addActionListener(this);
this.setLayout(null);
//this.setSize(200,200);
//choices.addActionListener(this);
public void actionPerformed(ActionEvent e){
//Object source = e.getSource();
if(choiceButton.getText().equals("Noughts")){
this.remove(choiceButton);
this.add(nought);
nought.setBounds(x,y,bounds,bounds);
this.revalidate();
this.repaint();
if(choiceButton.getText().equals("Crosses")){
this.remove(choiceButton);
this.add(cross);
cross.setBounds(x,y,bounds,bounds);
this.revalidate();
this.repaint();
public void setState(String s){
state = s;
checkState();
public String getState(){
return state;
public void checkState(){
if(getState().equals("n")){
choiceButton.setText("Noughts");
if(getState().equals("c")){
choiceButton.setText("Crosses");
}Thank you
SSkenthThank you for you replys, both of which were helpful. I found out a way of getting what i as looking for by creating a counter.. called clicked
Each time the button is pressed it adds 1 to its int value of click. (since it can only be clicked once) I then know whos turn it is, by using a modulus of the clicked value... so if its divisible by 2 its a nought otherwise its a cross or vice verse. heres the code for reference
This code is in the JPanel for choice
public void actionPerformed(ActionEvent e){
// Object source = e.getSource();
if(choiceButton.getText().equals("Noughts")){
clicked +=1;
this.remove(choiceButton);
this.add(nought);
nought.setBounds(x,y,bounds,bounds);
state = "c";
this.revalidate();
this.repaint();
// System.out.println(source);
if(choiceButton.getText().equals("Crosses")){
clicked +=1;
this.remove(choiceButton);
this.add(cross);
cross.setBounds(x,y,bounds,bounds);
state = "n";
this.revalidate();
this.repaint();
} This is in the Main class, so im constantly checking for changes
public void run(){
while(true){
int clicks = whosTurn()+1;
try{
if(clicks%2==0){
setStateNought();
}else{
setStateCross();
this.sleep(100);
}catch(InterruptedException e){
System.err.print("error in main thread");
public int whosTurn(){
return choice.clicked()+choice2.clicked()
+choice3.clicked()+choice4.clicked()+choice5.clicked()
+choice6.clicked()+choice7.clicked()+choice8.clicked()+choice9.clicked();
public void setStateNought(){
choice.setState("n");
choice2.setState("n");
choice3.setState("n");
choice4.setState("n");
choice5.setState("n");
choice6.setState("n");
choice7.setState("n");
choice8.setState("n");
choice9.setState("n");
public void setStateCross(){
choice.setState("c");
choice2.setState("c");
choice3.setState("c");
choice4.setState("c");
choice5.setState("c");
choice6.setState("c");
choice7.setState("c");
choice8.setState("c");
choice9.setState("c");
}As im sure you guessed im fairly new at this, well, i seem to do ok with coding its just the GUI i struggle with. Please feel free to criticise(positive that it)
Thank you again
SSKenth -
Accessing private class methods
This program works, but I am having some problem grasping the concept. If class Room can access methods in class House using gethWidth() and getHeight(), why is it that class Type cannot access those same
methods. Instead, it can only access setWidth() and
setHeight()?
class House {
private double width;//width of room
private double length;//length of the room
double getWidth() {return width;}
double getLength() {return length;}
void setWidth(double w) {width=w;}
void setLength(double l) {length=l;}
void showdim() {
System.out.println("My townhouse has two bedrooms.");
class Room extends House {
String bedroom;
double area() {
return getWidth() * getLength();
void showBedroom() {
System.out.println("The biggest room is the" + " " + bedroom + ".");
class Type {
public static void main(String args[]) {
Room r1=new Room();
Room r2=new Room();
r1.setWidth(14.5);
r1.setLength(20.6);
r1.bedroom="master bedroom";
r2.setWidth(15.2);
r2.setLength(15.3);
r2.bedroom="Guest Room";
System.out.println();
r1.showdim();
r1.showBedroom();
System.out.println();
System.out.println("The area of the" + " " + r1.bedroom+ " " +
"equals"+ " "+ r1.area()+ " " + "square feet.");
}Thanks to all. But the comments provided so far does not answer my question. Over the past few days I have struggled over the question and I think I found the answer. Others are welcome to comment.
Initially, "width" and "length" were decleared as private in class "House". For other classes to gain access, they had to use "accessor methods". Two accessor methods were decleared: "getWidth" and "getHeight"; and "setWidth" and "setLength". The first two methods "return"; the last two were "void". In class Room, I set up a method to return the calculation, so I used "getWidth and "getLength". In class "Type" I had to use the other method "setWidth", since I was declearing the actual values. Makes sense? -
Why can't I down load a free app I get a message that there is a problem with my payment method but I gave all information correctly , I did recently change my card no because I lost my old one .i did change the no. On my account HOPE YOU HAVE SOME SUGGESTIONS I DON'T SEE WHY THEY HAVE TO CHECKMY PAYMENT METHOD FOR A FREE GAME
Contact iTunes customer support.
We're all users like yourself and as such have no access to your account. -
BPM Scenario : " Error accessing table SXMS_AS_STATUS method: INSERT"
Hi all,
Webservice --> XI -->BW .
BPM has been used to send to send the response back.
BPM :
start ->Receive(Request)> Transformation(Responsemap)>Send(SendtoR/3)->Send(Send Response) ---> stop.
We are getting the error as " The error is <SAP:Stack>Error accessing table SXMS_AS_STATUS method: INSERT</SAP:Stack>
There are some messages that Webservice sent and XI received them but this error occured during some process in XI. and this is causing some discrepancy in the data sent and received.
Any idea what might be the problem ? Is there anything which I need to change in the parameters to rectify this error?
-Deepthi.Hi
Just check this note , can get some clue
SAP-Note 1124049
Regards
Abhishek -
Problem accessing variables from java file to JSP page
Hello Everyone,
I have small problem accessing my method variables from my java bean file to a JSP page. can some please take a look and tell me why I can't populate my JSP page, I've been trying all day to get this done!!!
This is my Java file
package dev;
import java.io.*;
import java.util.*;
public class RoundDetail2
public String string_gameID;
public int string_card1;
public String readDetail_topLayer;
public static final String SUITS[] = {" ", "Clubs", "Hearts", "Spades", "Diamonds", "Joker", "FaceDown"};
public static final String VALUES[] = {"Joker ","Ace", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Jack", "Queen", "King"};
public static final String SuitVALUES[] = {" ","1","2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14"};
public RoundDetail2() throws FileNotFoundException
DataInputStream inFile=
new DataInputStream(
new BufferedInputStream(
new FileInputStream("C:/apps/jakarta-tomcat-4.0.6/webapps/ROOT/WEB-INF/classes/dev/Data_452SY2.txt")));
try {
while((readDetail_topLayer = inFile.readLine()) != null)
StringTokenizer tokenizer_topLayer = new StringTokenizer(readDetail_topLayer,"\t", true);
while (tokenizer_topLayer.hasMoreTokens())
string_gameID = tokenizer_topLayer.nextToken();
catch(IOException e)
System.out.println(e.getMessage());
Thanks KT......How are you declaring the class in your JSP? ... are you instantiating it as a bean using the useBean tag, or just instantiating it in your code like normal.
Maybe you could post the relevant JSP code too?
Hello again,
Only the last string is populating after the file has be tokenized. What I'll like to accomplish is passing the very first string in the file. I did not get too far in the JSP file setup because the code is still in it's testing stage, but any help will be highly appreciated.
Here is the JSP code
<%@page import="dev.*" %>
<%@page session="true" language="java" import="java.io.*" %>
<jsp:useBean id="wagerhist" scope="request" class="dev.RoundDetail2" />
<html>
<head>
<title>Round Detail</title>
<body>
<table width="530" bordercolor="#000000" valign="top">
<tr>
<td align="left" width="19%">Game ID<%=wagerhist.string_gameID%></td>
<td align="left" width="30%"> </td>
<td align="left" width="20%">card1</td>
<td align="left" width="31%"> </td>
</tr>
</table>
</body>
</html> -
Several different equals methods
Hi,
I want to compare two different sets with eachother. The Set contains objects with a number of strings and Integers, and some of these need to be equal in order to find a match between the two different Sets. This differs from the "natural order" or the actual equal-value for the two objects, so I don�t want to implement Comparable and use the equals method directly in my Objects since I do not wat to mess with the "truth".
I tried to used Comparator, but the equals(Object obj) method only provides one of the two objects I need to compare, and the compare(Object obj1, Object obj2) is good, but should I use it to compare two objects from two DIFFERENT Collections. It seems the compare method is mostly used for sorting, and I don�t care about sorting at this point.
Set<MyObject> set1;
Set<MyObject> set2;
//compare all the objects in set 1 to all objects in set2 AND, if there is a match do:
myObjectFromSet1.setACertainValue(myObjectFromSet2.getACertainValue);The "ACertainValue" is of course not included in the comparison, since in set1, all the "ACertainValues" are empty, but I need to pick the value from its "equal" object from set2.I compare them field by field in my object - strings
and Integers - (except for one field : position).
All must match to call them "equal". Then I want to
set that field (position) in the set that doesn�'t
have that info yet and pick the value from the other
set (where there is ONE corresponding Object
available only). After this the two objects from each
set are "really equal".
There might be objects available without a match, but
those I will handle seperately.
Thanks for taking you time, it is really appriciated.No problem. I think I understand what you mean, here's yet another little demo:import java.util.*;
public class Main {
public static void main(String[] args) {
MyObject[] array1 = {new MyObject(1, "A", new Integer(11)),
new MyObject(2, "B", new Integer(22)),
new MyObject(3, "C", new Integer(33))};
Set<MyObject> set1 = new HashSet<MyObject>(Arrays.asList(array1));
MyObject[] array2 = {new MyObject(1, "A"),
new MyObject(2, "B"),
new MyObject(3, "C")};
Set<MyObject> set2 = new HashSet<MyObject>(Arrays.asList(array2));
System.out.println("Before\nset1 : "+set1);
System.out.println("set2 : "+set2);
List<MyObject> list1 = new ArrayList<MyObject>(set1);
for(MyObject mo2 : set2) {
int index = list1.indexOf(mo2);
if(index != -1) {
MyObject mo1 = list1.get(index);
if(mo2.position == null) {
mo2.position = mo1.position;
} else {
mo1.position = mo2.position;
System.out.println("\nAfter\nset1 : "+set1);
System.out.println("set2 : "+set2);
class MyObject {
protected Integer id, position;
protected String str;
public MyObject(int id, String str) {
this(id, str, null);
public MyObject(int id, String str, Integer position) {
this.id = id;
this.str = str;
this.position = position;
public boolean equals(Object o) {
MyObject that = (MyObject)o;
return this.id == that.id && this.str.equals(that.str);
public int hashCode() {
return (31*this.id) ^ (37*this.str.hashCode());
public String toString() {
return "{id="+this.id+", str="+this.str+", position="+this.position+"}";
}Produces the following output:Before
set1 : [{id=3, str=C, position=33}, {id=2, str=B, position=22}, {id=1, str=A, position=11}]
set2 : [{id=3, str=C, position=null}, {id=2, str=B, position=null}, {id=1, str=A, position=null}]
After
set1 : [{id=3, str=C, position=33}, {id=2, str=B, position=22}, {id=1, str=A, position=11}]
set2 : [{id=3, str=C, position=33}, {id=2, str=B, position=22}, {id=1, str=A, position=11}] -
How do I access classes and methods defined in a wsdl file
I have been provided a wsdl file I need to find out how do I access classes and methods defined in a wsdl file directly instead of doing a wsdl2java...
Several comments :
1- is there any reason to have blank chars inserted after the path ? Seems that you already have a problem there. If possible, try to solve the problem at the source
2- the end of line char is usually CR (Carriage Return, aka ASCII char 13 = $0D = Control-D). But LF (Line Feed = 10 = $0A = control-A) is also used (platform dependent). In LV, you can use the "Concatenate strings" function to add/insert control chars (found in the String Control Palette). However, this will not solve your problem of unwanted added blank chars at the end of your string.
3- you can use the Trim white space.vi (in the "Additionnal string functions" sub-palette) to remove ALL the spaces in your string
4- you can build your own "end space remover" function. :
reverse the string, wire to a "Match pattern" function, use " +" (space + "+") to search for any number of spaces, reverse again the "after substring".
5- there is no point 5 :-)
You may find interesting description of ASCII chars here
Chilly Charly (aka CC)
E-List Master - Kudos glutton - Press the yellow button on the left... -
Problem Accessing Protocol Classes in INBOUND PROXY
Hi guys.
Im having problems accessing Protocol Classes in a inbound proxy.
I have this code that is copied from:
http://help.sap.com/saphelp_nw04/helpdata/en/a7/3b2a2d45a34a23b75e3b18745c63bc/frameset.htm
DATA: lo_server_context TYPE REF TO if_ws_server_context,
lo_payload_protocol TYPE REF TO if_wsprotocol_payload.
lo_server_context = cl_proxy_access=>get_server_context( ).
lo_payload_protocol =
lo_server_context->get_protocol( if_wsprotocol=>payload ).
But Im getting this error:
The result type of the function method cannot be converted into the type lo_payload_protocol
If I try to get the attachment protocol with this code:
DATA: lo_server_context TYPE REF TO if_ws_server_context,
lo_attachment_prtcl TYPE REF TO IF_WSPROTOCOL_ATTACHMENTS.
lo_server_context = cl_proxy_access=>get_server_context( ).
lo_attachment_prtcl = lo_server_context->get_protocol( if_wsprotocol=>ATTACHMENTS ).
Im getting the same error.
What am I doing wrong? It' s code copied fror SAP Library!!!
Thanks a lot.hi,
you are choosing wrong type for lo_payload_protocol.
you must change like this
lo_payload_protocol TYPE REF TO IF_WSPROTOCOL.
regards,
orhan -
Error in accessing the create method declared in Home interface
hi,
I have create method in home interface which takes the following syntax:
public ShipRemote create(ShipPK id,String name,int capacity,float tonnage) throws CreateException,RemoteException;
In the client I create a remote object and try to call this create method, but I get a compilation error :
it says unable to resolve the symbol with a cursor pointing the create method
interface sampleEJB.ship.shipInfo.ShipHome ShipRemote remoteRef=(ShipRemote)homeRef.create(spk,sname,5000,100.7);
how can i resolve this.
I have implemented this create method in my beanhi i have compiled the client interfaces and the bean successfully.
I have also imported the classes in the in the client code .
I even deployed my jar successfully, but i have problem in accessing the create method specified .
thank you -
Error when accessing CMP EJB methods
I get a strange error, when I access a getter method in my remote interface to query the variables in my CMP EJB. I use Jdev 3.2 agains Oracle 8.1.7.
I can see that the error must be originating from the persistance manager BC4J XML, but not sure how to resolve it, any help is appreciated.
The line having the problem is the second line;
portofolio.Portofolio remoteInterface = homeInterface.findByPrimaryKey("Fantacy");
System.out.println("The record is " + remoteInterface.getPORTO_TYPE());
The full error stack is as follows ( I don't see why there is a complaint about an update statement ?? );
Caught RuntimeException in remote method; nested exception is:
oracle.jbo.DMLException:JBO-26041: Failed to post data to database during "Update": SQL Statement " UPDATE PORTOFOLIO Portofolio123 SET VALUE=:1,PORTO_TYPE=:2,REAL_IND=:3,PORTO_NAME=:4,VALUED_ON=:5 WHERE PORTO_NAME=:6".
Remote Stack Trace:
oracle.jbo.DMLException: JBO-26041: Failed to post data to database during "Update": SQL Statement " UPDATE PORTOFOLIO Portofolio123 SET VALUE=:1,PORTO_TYPE=:2,REAL_IND=:3,PORTO_NAME=:4,VALUED_ON=:5 WHERE PORTO_NAME=:6".
at oracle.jbo.server.OracleSQLBuilderImpl.doEntityDML(OracleSQLBuilderImpl.java:348)
at oracle.jbo.server.EntityImpl.doDML(EntityImpl.java:3293)
at oracle.jbo.server.EntityImpl.postChanges(EntityImpl.java:2588)
at oracle.jbo.server.DBTransactionImpl.postChanges(DBTransactionImpl.java:1628)
at oracle.jbo.server.DBTransactionImpl.commitInternal(DBTransactionImpl.java:997)
at oracle.jbo.server.DBTransactionImpl.commit(DBTransactionImpl.java:1151)
at oracle.jbo.server.ejb.cmp.CMPTransactionImpl.beforeCompletion(CMPTransactionImpl.java:74)
at oracle.aurora.transaction.OracleTransaction.localBeforeCompletion(OracleTransaction.java)
at oracle.aurora.transaction.OracleTransactionManager.localBeforeCompletion(OracleTransactionManager.java)
at oracle.aurora.transaction.OracleTransactionManager.rollback(OracleTransactionManager.java)
at oracle.aurora.transaction.OracleTransactionManager.rollback(OracleTransactionManager.java)
at oracle.aurora.ejb.server.AuroraEnterpriseBean.__txn_rollback(AuroraEnterpriseBean.java)
at oracle.aurora.ejb.gen._test_omeed_Portofolio.EjbObject_Portofolio.getPORTO_TYPE(oracle/aurora/ejb/gen/_test_omeed_Portofolio/EjbObject_Portofolio:228)
at portofolio._tie_Portofolio.getPORTO_TYPE(_tie_Portofolio.java:143)
at portofolio._PortofolioImplBase._execute(_PortofolioImplBase.java:186)
at portofolio._PortofolioImplBase._execute(_PortofolioImplBase.java:117)
at com.visigenic.vbroker.orb.SkeletonDelegateImpl.execute(SkeletonDelegateImpl.java)
at oracle.aurora.server.GiopProtocolAdapter.doRequest(GiopProtocolAdapter.java)
at com.visigenic.vbroker.orb.GiopProtocolAdapter.dispatchMessage(GiopProtocolAdapter.java)
at oracle.aurora.server.ThreadSessionDispatcher.run(ThreadSessionDispatcher.java)
at oracle.aurora.server.VCIiopConnection.processRequest(VCIiopConnection.java)
at oracle.aurora.server.GiopServer._service(GiopServer.java)
at oracle.aurora.server.GiopServer.service(GiopServer.java)
at oracle.aurora.net.VirtualCircuit.processRequest(VirtualCircuit.java)
at oracle.aurora.net.Presentation.handleRequest(Presentation.java)
## Detail 0 ##
oracle.jdbc.driver.OracleSQLException: ORA-01861: literal does not match format string
at oracle.jdbc.kprb.KprbDBAccess.check_error(KprbDBAccess.java)
at oracle.jdbc.kprb.KprbDBAccess.executeFetch(KprbDBAccess.java)
at oracle.jdbc.kprb.KprbDBAccess.parseExecuteFetch(KprbDBAccess.java)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java)
at oracle.jbo.server.OracleSQLBuilderImpl.doEntityDML(OracleSQLBuilderImpl.java:269)
at oracle.jbo.server.EntityImpl.doDML(EntityImpl.java:3293)
at oracle.jbo.server.EntityImpl.postChanges(EntityImpl.java:2588)
at oracle.jbo.server.DBTransactionImpl.postChanges(DBTransactionImpl.java:1628)
at oracle.jbo.server.DBTransactionImpl.commitInternal(DBTransactionImpl.java:997)
at oracle.jbo.server.DBTransactionImpl.commit(DBTransactionImpl.java:1151)
at oracle.jbo.server.ejb.cmp.CMPTransactionImpl.beforeCompletion(CMPTransactionImpl.java:74)
at oracle.aurora.transaction.OracleTransaction.localBeforeCompletion(OracleTransaction.java)
at oracle.aurora.transaction.O
racleTransactionManager.localBeforeCompletion(OracleTransactionManager.java)
at oracle.aurora.transaction.OracleTransactionManager.rollback(OracleTransactionManager.java)
at oracle.aurora.transaction.OracleTransactionManager.rollback(OracleTransactionManager.java)
at oracle.aurora.ejb.server.AuroraEnterpriseBean.__txn_rollback(AuroraEnterpriseBean.java)
at oracle.aurora.ejb.gen._test_omeed_Portofolio.EjbObject_Portofolio.getPORTO_TYPE(oracle/aurora/ejb/gen/_test_omeed_Portofolio/EjbObject_Portofolio:228)
at portofolio._tie_Portofolio.getPORTO_TYPE(_tie_Portofolio.java:143)
at portofolio._PortofolioImplBase._execute(_PortofolioImplBase.java:186)
at portofolio._PortofolioImplBase._execute(_PortofolioImplBase.java:117)
at com.visigenic.vbroker.orb.SkeletonDelegateImpl.execute(SkeletonDelegateImpl.java)
at oracle.aurora.server.GiopProtocolAdapter.doRequest(GiopProtocolAdapter.java)
at com.visigenic.vbroker.orb.GiopProtocolAdapter.dispatchMessage(GiopProtocolAdapter.java)
at oracle.aurora.server.ThreadSessionDispatcher.run(ThreadSessionDispatcher.java)
at oracle.aurora.server.VCIiopConnection.processRequest(VCIiopConnection.java)
at oracle.aurora.server.GiopServer._service(GiopServer.java)
at oracle.aurora.server.GiopServer.service(GiopServer.java)
at oracle.aurora.net.VirtualCircuit.processRequest(VirtualCircuit.java)
at oracle.aurora.net.Presentation.handleRequest(Presentation.java)
oracle.aurora.ejb.RemoteRuntimeException: Caught RuntimeException in remote method; nested exception is:
oracle.jbo.DMLException:JBO-26041: Failed to post data to database during "Update": SQL Statement " UPDATE PORTOFOLIO Portofolio123 SET VALUE=:1,PORTO_TYPE=:2,REAL_IND=:3,PORTO_NAME=:4,VALUED_ON=:5 WHERE PORTO_NAME=:6".
Remote Stack Trace:
oracle.jbo.DMLException: JBO-26041: Failed to post data to database during "Update": SQL Statement " UPDATE PORTOFOLIO Portofolio123 SET VALUE=:1,PORTO_TYPE=:2,REAL_IND=:3,PORTO_NAME=:4,VALUED_ON=:5 WHERE PORTO_NAME=:6".
at oracle.jbo.server.OracleSQLBuilderImpl.doEntityDML(OracleSQLBuilderImpl.java:348)
at oracle.jbo.server.EntityImpl.doDML(EntityImpl.java:3293)
at oracle.jbo.server.EntityImpl.postChanges(EntityImpl.java:2588)
at oracle.jbo.server.DBTransactionImpl.postChanges(DBTransactionImpl.java:1628)
at oracle.jbo.server.DBTransactionImpl.commitInternal(DBTransactionImpl.java:997)
at oracle.jbo.server.DBTransactionImpl.commit(DBTransactionImpl.java:1151)
at oracle.jbo.server.ejb.cmp.CMPTransactionImpl.beforeCompletion(CMPTransactionImpl.java:74)
at oracle.aurora.transaction.OracleTransaction.localBeforeCompletion(OracleTransaction.java)
at oracle.aurora.transaction.OracleTransactionManager.localBeforeCompletion(OracleTransactionManager.java)
at oracle.aurora.transaction.OracleTransactionManager.rollback(OracleTransactionManager.java)
at oracle.aurora.transaction.OracleTransactionManager.rollback(OracleTransactionManager.java)
at oracle.aurora.ejb.server.AuroraEnterpriseBean.__txn_rollback(AuroraEnterpriseBean.java)
at oracle.aurora.ejb.gen._test_omeed_Portofolio.EjbObject_Portofolio.getPORTO_TYPE(oracle/aurora/ejb/gen/_test_omeed_Portofolio/EjbObject_Portofolio:228)
at portofolio._tie_Portofolio.getPORTO_TYPE(_tie_Portofolio.java:143)
at portofolio._PortofolioImplBase._execute(_PortofolioImplBase.java:186)
at portofolio._PortofolioImplBase._execute(_PortofolioImplBase.java:117)
at com.visigenic.vbroker.orb.SkeletonDelegateImpl.execute(SkeletonDelegateImpl.java)
at oracle.aurora.server.GiopProtocolAdapter.doRequest(GiopProtocolAdapter.java)
at com.visigenic.vbroker.orb.GiopProtocolAdapter.dispatchMessage(GiopProtocolAdapter.java)
at oracle.aurora.server.ThreadSessionDispatcher.run(ThreadSessionDispatcher.java)
at oracle.aurora.server.VCIiopConnection.processRequest(VCIiopConnection.java)
at oracle.aurora.server.GiopServer._service(GiopServer.java)
at oracle.aurora.server.GiopServer.service(GiopServer.java)
at oracle.aurora.net.VirtualCircuit.processRequest(VirtualCircuit.java)
at oracle.aurora.net.Presentation.handleRequest(Presentation.java)
## Detail 0 ##
oracle.jdbc.driver.OracleSQLException: ORA-01861: literal does not match format string
at oracle.jdbc.kprb.KprbDBAccess.check_error(KprbDBAccess.java)
at oracle.jdbc.kprb.KprbDBAccess.executeFetch(KprbDBAccess.java)
at oracle.jdbc.kprb.KprbDBAccess.parseExecuteFetch(KprbDBAccess.java)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java)
at oracle.jbo.server.OracleSQLBuilderImpl.doEntityDML(OracleSQLBuilderImpl.java:269)
at oracle.jbo.server.EntityImpl.doDML(EntityImpl.java:3293)
at oracle.jbo.server.EntityImpl.postChanges(EntityImpl.java:2588)
at oracle.jbo.server.DBTransactionImpl.postChanges(DBTransactionImpl.java:1628)
at oracle.jbo.server.DBTransactionImpl.commitInternal(DBTransactionImpl.java:997)
at oracle.jbo.server.DBTransactionImpl.commit(DBTransactionImpl.java:1151)
at oracle.jbo.server.ejb.cmp.CMPTransactionImpl.beforeCompletion(CMPTransactionImpl.java:74)
at oracle.aurora.transaction.OracleTransaction.localBeforeCompletion(OracleTransac
tion.java)
at oracle.aurora.transaction.OracleTransactionManager.localBeforeCompletion(OracleTransactionManager.java)
at oracle.aurora.transaction.OracleTransactionManager.rollback(OracleTransactionManager.java)
at oracle.aurora.transaction.OracleTransactionManager.rollback(OracleTransactionManager.java)
at oracle.aurora.ejb.server.AuroraEnterpriseBean.__txn_rollback(AuroraEnterpriseBean.java)
at oracle.aurora.ejb.gen._test_omeed_Portofolio.EjbObject_Portofolio.getPORTO_TYPE(oracle/aurora/ejb/gen/_test_omeed_Portofolio/EjbObject_Portofolio:228)
at portofolio._tie_Portofolio.getPORTO_TYPE(_tie_Portofolio.java:143)
at portofolio._PortofolioImplBase._execute(_PortofolioImplBase.java:186)
at portofolio._PortofolioImplBase._execute(_PortofolioImplBase.java:117)
at com.visigenic.vbroker.orb.SkeletonDelegateImpl.execute(SkeletonDelegateImpl.java)
at oracle.aurora.server.GiopProtocolAdapter.doRequest(GiopProtocolAdapter.java)
at com.visigenic.vbroker.orb.GiopProtocolAdapter.dispatchMessage(GiopProtocolAdapter.java)
at oracle.aurora.server.ThreadSessionDispatcher.run(ThreadSessionDispatcher.java)
at oracle.aurora.server.VCIiopConnection.processRequest(VCIiopConnection.java)
at oracle.aurora.server.GiopServer._service(GiopServer.java)
at oracle.aurora.server.GiopServer.service(GiopServer.java)
at oracle.aurora.net.VirtualCircuit.processRequest(VirtualCircuit.java)
at oracle.aurora.net.Presentation.handleRequest(Presentation.java)
java.lang.String portofolio._st_Portofolio.getPORTO_TYPE()
void portoclient.PortoClient.main(java.lang.String[])
nullHi,
How did you map the CMP-fields? I got the same Exceptions when I mapped a column which is DATE type to java.lang.String. DATE type column should be mapped to java.sql.Date. -
Problem accessing ejb from servlet
Hi,
I'm aving a problem accessing a stateful session bean from a servlet. I'm using a jndi lookup to do it because I need that a client has its own bean reference...
My code into the service method is:
InitialContext ctx;
try {
ctx = new InitialContext();
carrelloService = (CarrelloLocal)ctx.lookup("java:comp/env/ejb/Carrello");
and I have a reference to EJB into web.xml:
<ejb-local-ref>
<ejb-ref-name>ejb/Carrello</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local-home></local-home>
<local>carrello.model.CarrelloLocal</local>
</ejb-local-ref>
If I use @EJB annotation to inject the servlet, it works fine.
Instead using jndi lookup throws a NamingException because it doesn't find java:comp/env/ejb/Carrello entry.
Any idea about the problem?Here's something simple that I have that works:
<p> </p>
SimpleBean
<p> </p>
@Stateless(name="SimpleBean")
public class SimpleBeanBean implements SimpleBeanLocal {
<p> </p>
web.xml; -- note I use a whacko ejb-ref-name just to make it obvious where I'm using it.
<p> </p>
<ejb-local-ref>
<ejb-ref-name>ejb_mapping_doodad/SimpleBean</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local>sab.otn681398.ejb.SimpleBeanLocal</local>
</ejb-local-ref><p> </p>
servlet:
<p> </p>
package sab.otn681398.web;
import java.io.IOException;
import java.io.PrintWriter;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.servlet.*;
import javax.servlet.http.*;
import sab.otn681398.ejb.SimpleBeanLocal;
public class TestServlet extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=windows-1252";
private static final String SIMPLE_BEAN_JNDI = "ejb_mapping_doodad/ASimpleBean";
private final boolean USEENC = true;
private SimpleBeanLocal simple = null;
public void init(ServletConfig config) throws ServletException {
super.init(config);
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
try {
if(simple==null) {
simple = createSimple();
} catch(NamingException ne) {
throw new ServletException("Error in looking up the EJB", ne);
out.println("<html>");
out.println("<head><title>TestServlet</title></head>");
out.println("<body>");
out.printf("<p>The %s bean has been hit: %s times</p>", simple, simple.getHitCount());
out.println("</body></html>");
out.close();
private SimpleBeanLocal createSimple() throws NamingException {
return (USEENC==true? createSimpleViaENC(): createSimpleViaName());
private SimpleBeanLocal createSimpleViaENC() throws NamingException {
InitialContext ic = new InitialContext();
SimpleBeanLocal simple = (SimpleBeanLocal)ic.lookup("java:comp/env/" + SIMPLE_BEAN_JNDI);
return simple;
private SimpleBeanLocal createSimpleViaName() throws NamingException {
InitialContext ic = new InitialContext();
SimpleBeanLocal simple = (SimpleBeanLocal)ic.lookup(SIMPLE_BEAN_JNDI);
return simple;
}<p> </p>
-steve-
Maybe you are looking for
-
Change desktop picture automatically doesn't work
Hi I am trying to use the System Preferences Destop Picture "Change Picture automatically" every day feature. I want it to select a picture automatically at random every day from the folder I set. This does not seem to work. If I set it to "every day
-
Hiding and unhiding arbitrary nodes in a scene graphs with animations
Could someone point me out to how could I dissolve (or any other animation effect) an arbitrary node (with its children) in the scene graph when I click in certain label ?. And how could I show them, also with an animation, when the label is clicked
-
EXS24 - how to affect speed when creating zones from regions
So what I want is to be able to change the pitch of a region without changing the tempo of the new region. I convert a region to a new sampler track and then map it over say 5 contiguous keys. This allows me to play a loop in 5 different keys no prob
-
Please help me in my question above
-
Automatically Load JavaScript Files in PagePhaseListener
Hello. In my application I want to load JavaScript files automatically on each page load or navigation. It can be done by using af:resource, but what I want that in my application I do not want to load each and every JavaScript files for every page.