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
    SSkenth

    Thank 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?

  • TS3297 Why I can't download a free game I get a message that there's a problem with my payment method but not what it is this is a free app I tried support and got nowhere help

    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 bean

    hi 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[])
    null

    Hi,
    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("&lt;p&gt;The %s bean has been hit: %s times&lt;/p&gt;", 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