Problem with Beansbinding as separated class

Hello,
I used beansbinding together with a JTextfield and usually it works, which means that if I do it like the following;
  /// the class that I use implements a binding listener
binding = Bindings.createAutoBinding(AutoBinding.UpdateStrategy.READ_WRITE,                        // two-way binding
                                                    systemDaten ,                                                             //source and backing bean
                                                       BeanProperty.create("debeyeHueckelkonstanteA") ,          //name of field
                                                       debeyeHueckelkonstanteA,                                            // name of jtextfield as swing source
                                                       textProperty,                                                     //Property textProperty = BeanProperty.create("text");  
                                                      "debeyeHueckelkonstanteA" );                             // Name      
          binding.setConverter(null);
       binding.setValidator(null);
           binding.addBindingListener(this);                                                  /// this = because the class that I use implements a binding listener
        binding.bind();
//if I use instead of binding.addBindingListener(this) the following version with an anonym class, it works as well:
binding.addBindingListener(new BindingListener() {
            @Override
            public void bindingBecameBound(Binding binding) {
            @Override
            public void bindingBecameUnbound(Binding binding) {
            @Override
            public void syncFailed(Binding binding, SyncFailure failure) {
            @Override
            public void synced(Binding binding) {
            @Override
            public void sourceChanged(Binding binding, PropertyStateEvent event) {
            @Override
            public void targetChanged(Binding binding, PropertyStateEvent event) {
        } );if I use this form using a customized class and a constructor with the data (double number) to be represented :
                        binding.addBindingListener(new SystemBindingListener(systemDaten.getMesstemperatur()) )with a class implementing the listener as below it doesn't work.
public class SystemBindingListener implements BindingListener {
    private double value = 0.0;
    public SystemBindingListener(double value) {
     super();
     this.setValue(value);
    private final PropertyChangeSupport propertyChangeSupport =
     new PropertyChangeSupport(this);
     public void addPropertyChangeListener(PropertyChangeListener l) {
     propertyChangeSupport.addPropertyChangeListener(l);
    public void removePropertyChangeListener(PropertyChangeListener l) {
     propertyChangeSupport.removePropertyChangeListener(l);
             @Override
                public void bindingBecameBound(Binding binding) {
                    System.out.println("bound ok " + binding.getName());  }
            @Override
                public void bindingBecameUnbound(Binding binding) {
                    System.out.println("unbound ok " + binding.getName());  }
            @Override
                public void syncFailed(Binding binding, SyncFailure failure) {
                    System.out.println("sync not ok " + binding.getName());  }
            @Override
                public void synced(Binding binding) {
                this.setValue(value);
                  System.out.println("sync ok " + binding.getName() + this.getValue()); }
            @Override
                public void sourceChanged(Binding binding, PropertyStateEvent event) {
                    System.out.println("source ok " + binding.getName());    }
            @Override
                public void targetChanged(Binding binding, PropertyStateEvent event) {
                    System.out.println("target ok " + binding.getName()); }
        public double getValue(){
         return value;
        public void setValue(double value){
        final double old = this.value;
     this.value = value;
     propertyChangeSupport.firePropertyChange(
                      "value", // the name of the property
                      old, // the old value
                      value // the new value
        this.value = value;
}The problem is that I wanted to "outsource" the BindingListener but change its output depending on the source modified on the GUI.
I have several textfields and I want to be sure that whenever one of them gets modified the value is modified in the backing bean
and this should be visible by the System.out.println(this.getValue()) output.
I added Property Support but this didn't help. As you can see I want a Read-Write Binding which works as described in the first two examples.
But with a externalized class binding doesn't work.
Does anyone know how to do this.
Thanks for help
Thommy
Edited by: 886674 on 4 oct. 2011 08:31
Edited by: 886674 on 4 oct. 2011 08:35

Hello,
I am not sure if it is as short as you want to, but anyway there cannot be less classes than that, because I need each of them and any further reduction
would falsify the situation given.
Also there are only some lines which are determining size, location - and especially Layout - etc which I left nearly as they are.
Before using the given function addComponent() I had big problems to get a proper GUI Layout so I changed not to much concerning the layout (I didn't want to take the risk that nothing appears at all (or not at the right place) as I experienced many times before).
Anyway, it is much less than the 10 classes (or the 30 original classes) I had before. So here is the code:
package controls;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import org.jdesktop.beansbinding.AutoBinding;
import org.jdesktop.beansbinding.BeanProperty;
import org.jdesktop.beansbinding.Binding;
import org.jdesktop.beansbinding.Binding.SyncFailure;
import org.jdesktop.beansbinding.BindingGroup;
import org.jdesktop.beansbinding.BindingListener;
import org.jdesktop.beansbinding.Bindings;
import org.jdesktop.beansbinding.Property;
import org.jdesktop.beansbinding.PropertyStateEvent;
public class Main {
    public static Mainframe wg = null;
    public static void main(String[] args)  {
    wg = new Mainframe();
    wg.setVisible(true);
class Mainframe extends JFrame {
public static final long serialVersionUID = 1111111;
    private JPanel pnlOben;
    private JPanel pnlMitte;
    private KonstantenPanel kp = null;
    private   Dimension screendimension;
    private   Dimension dimension;   
    public Mainframe(){
    super();
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    screendimension = Toolkit.getDefaultToolkit().getScreenSize();
    dimension = new Dimension();
    dimension.setSize(400, 400);
    this.setSize(dimension);
    this.setLocation((int) ((screendimension.getSize().getWidth()) / 2), (int) (screendimension.getSize().getHeight()/ 2));
    init();
public void init(){
  desktopMalen();
private void desktopMalen() {
         this.setLayout(new BorderLayout(20, 20));
        this.add(NordPanelMalen(), BorderLayout.NORTH);
        this.add(CenterPanelMalen(), BorderLayout.WEST);
        this.add( new JPanel(),BorderLayout.SOUTH);
    private JPanel NordPanelMalen() {
        pnlOben = new JPanel(new FlowLayout(FlowLayout.LEFT));
        pnlOben.add(new JLabel("Test"));
       return pnlOben ;
   private JPanel CenterPanelMalen() {
        this.pnlMitte = new JPanel();  //new FlowLayout(FlowLayout.CENTER
        this.pnlMitte.setLayout(new GridLayout(1, 1));    
        Dimension d = new Dimension();       
        this.pnlMitte.setSize(400,400); d.setSize(400, 400);
        KonstantenPanel bp = new KonstantenPanel(d);  //// the panel with the swing component
         this.pnlMitte.add(bp);
  return pnlMitte;
class KonstantenPanel extends JPanel {
    public static final long serialVersionUID = 1111111;  
    private Systemdaten systemDaten = null;
    private JTextField messtemperatur;
    private BindingGroup bindinggroup = null;
    private Binding binding;
    private SystemBindingListener sbl1;
    public KonstantenPanel(Dimension d) {
    this.setSize(d);
    init();
    private void init() {
   systemDaten = new Systemdaten();           /////// the bean class
    GridBagLayout gbl = new GridBagLayout();
   this.setLayout(gbl);
    this.addComp(gbl,new JLabel("Konstanten"),0,0,4,1,0,0,GridBagConstraints.HORIZONTAL, GridBagConstraints.NORTHWEST);
    this.addComp(gbl,new JLabel("                   "),     0,1,4,1,0,0,GridBagConstraints.HORIZONTAL, GridBagConstraints.NORTHWEST);
    this.addComp(gbl,new JLabel("Messtemperatur   "),       0,2,2,1,0,0,GridBagConstraints.HORIZONTAL, GridBagConstraints.NORTHWEST);
                                                            /////the swing component using beansbinding
   messtemperatur = new JTextField("298.15             ");
   messtemperatur.setName("messtemperatur");
   this.addComp(gbl,messtemperatur ,  0,3,2,1,0,0,GridBagConstraints.HORIZONTAL, GridBagConstraints.NORTHWEST);
                                                     ///all the binding is done here in:
   bindProperties();
    @SuppressWarnings("unchecked")
        private void bindProperties() {
     Property textProperty = BeanProperty.create("text");
        bindinggroup=new BindingGroup();
     binding = Bindings.createAutoBinding(
       AutoBinding.UpdateStrategy.READ_WRITE, // two-way binding
       systemDaten,                 // bean
       BeanProperty.create("messtemperatur"),
       messtemperatur,        //field
       textProperty,        //name of property
       "messtemperatur" //name
        sbl1 = new SystemBindingListener(systemDaten.getMesstemperatur());
        binding.addBindingListener(sbl1);
        binding.setConverter(null);
     binding.setValidator(null);
         binding.bind();
         bindinggroup.addBinding(binding);
    bindinggroup.bind();
     public void addComp (   //Container cont,
                         GridBagLayout gbl, Component c, int x, int y, int width, int height, double weightx, double weighty, int cbc, int a)
    GridBagConstraints gbc = new GridBagConstraints();
    gbc.fill = cbc ; //GridBagConstraints.BOTH;
    gbc.gridx = x; gbc.gridy = y;
    gbc.gridwidth = width; gbc.gridheight = height;
    gbc.weightx = weightx; gbc.weighty= weighty;
    gbc.anchor = a; gbl.setConstraints(c, gbc);
    this.add(c);
     * in praxis the extra class would be especially interesting if there are more variables     *
class SystemBindingListener implements BindingListener {
    private double value = 0.0;
    SystemBindingListener(double value) {
     super();
     this.setValue(value);
    private final PropertyChangeSupport propertyChangeSupport =     new PropertyChangeSupport(this);
    void addPropertyChangeListener(PropertyChangeListener l) {
     propertyChangeSupport.addPropertyChangeListener(l);
    void removePropertyChangeListener(PropertyChangeListener l) {
     propertyChangeSupport.removePropertyChangeListener(l);
             @Override
                public void bindingBecameBound(Binding binding) {
                    System.out.println("bound ok " + binding.getName());  }
            @Override
                public void bindingBecameUnbound(Binding binding) {
                    System.out.println("unbound ok " + binding.getName());  }
            @Override
                public void syncFailed(Binding binding, SyncFailure failure) {
                    System.out.println("sync not ok " + binding.getName());  }
            @Override
                public void synced(Binding binding) {
                this.setValue(value);
                  System.out.println("sync ok " + binding.getName() + this.getValue()); }
            @Override
                public void sourceChanged(Binding binding, PropertyStateEvent event) {
                    System.out.println("source ok " + binding.getName());    }
            @Override
                public void targetChanged(Binding binding, PropertyStateEvent event) {
                    System.out.println("target ok " + binding.getName()); }
        double getValue(){
         return value;
       void setValue(double value){
        final double old = this.value;
     this.value = value;
     propertyChangeSupport.firePropertyChange(
                      "value", // the name of the property
                      old, // the old value
                      value // the new value
        this.value = value;
class Systemdaten {
static final long serialVersionUID = 1111111L;
    private double messtemperatur = 298.15;
    private final PropertyChangeSupport propertyChangeSupport =     new PropertyChangeSupport(this);
   void addPropertyChangeListener(PropertyChangeListener l) {
     propertyChangeSupport.addPropertyChangeListener(l);
   void removePropertyChangeListener(PropertyChangeListener l) {
     propertyChangeSupport.removePropertyChangeListener(l);
  double getMesstemperatur() {
        return messtemperatur;
   void setMesstemperatur(double messtemperatur) {
        final double old = this.messtemperatur;
     this.messtemperatur = messtemperatur;
     propertyChangeSupport.firePropertyChange(
                      "messtemperatur", // the name of the property
                      old, // the old value
                      messtemperatur // the new value
        this.messtemperatur = messtemperatur;
}Due to your questions I guess to know why it there is no binding between the Listener-Instance and the Swing-Compound but
I don't see how to get all three classes working together.
I mean: If I want to have a binding between the value variable in the BindingListener and the SwingCompound I need to create such a binding in the panel-Class.
But I only created a binding with the field in systemDaten because this is the bean I want to work with.
It seems that I didn't understand how it is managed that the value is changing in the bean and the swingcompound simultaneously - after creating and adding the
BindingListener-Instance.
In the two other cases there is still a communication between the Listener and the swingCompound but in the given case there is not.
I was not aware of this problem before and I am still not sure to fully understand why it works in the other cases.
Do I need to give the binding variable or swing compound to the BindingListener to keep communication ?
Thanks for your help
Thommy

Similar Messages

  • Problem with running the midlet class (Error with Installation suite )

    hi everyone...
    i have problem with running the midlet class(BluetoothChatMIDlet.java)
    it keep showing me the same kind of error in the output pane of netbeans...
    which is:
    Installing suite from: http://127.0.0.1:49296/Chat.jad
    [WARN] [rms     ] javacall_file_open: wopen failed for: C:\Users\user\javame-sdk\3.0\work\0\appdb\delete_notify.dat
    i also did some research on this but due to lack of forum that discussing about this,im end up no where..
    from my research i also find out that some of the developer make a changes in class properties..
    where they check the SIGN DISTRIBUTION...and also change the ALIAS to UNTRUSTED..after that,click the EXPORT KEY INTO JAVA ME SDK,PLATFORM,EMULATOR...
    i did that but also didnt work out..
    could any1 teach me how to fix it...
    thanx in advance... :)

    actually, i do my FYP on bluetooth chatting...
    and there will be more than two emulators running at the same time..
    one of my frens said that if u want to run more than one emulator u just simply click on run button..
    and it will appear on the screen..

  • Problem with setContentPane() in JFrame class

    I recently discovered a problem with the setContentPane method in the JFrame class. When I use setContentPane(Container ..), the previously existing contentPane remains in the stack. I have tried nullifying getContentPane(), and all manner of things, but, each time I use setContentPane, I have another instance of a JPanel in the stack.
    I'm using code similar to setContentPane(new CustomJPanel()); and each time the user changes screens, and a similar call to that is made, the old CustomJPanel instance remains in the stack. Can anyone suggest a way around this? On their own the panels do not take up very much memory, but after several hours of usage, they will build up.

    I tried what you suggested; it only resulted in a huge performance decrease. The problem with memory allocation is still there.
    Here is the method I use to switch screens in my app:
    public static void changeScreen (JPanel panel){
              try{
                   appFrame.setTitle("Wordinary : \""+getTitle()+"\"");
                   appFrame.setContentPane(panel);
                   appFrame.setSize(appFrame.getContentPane().getPreferredSize());     
                   appFrame.getContentPane().setBackground(backColour);
                   for (int i = 0; i < appFrame.getContentPane().getComponents().length; i++)
                        appFrame.getContentPane().getComponents().setForeground(textColour);
                   //System.out.println("Background colour set to "+backColour+" text colour set to "+textColour);
                   appFrame.validate();
              catch (Exception e){
                   //System.out.println("change");
                   e.printStackTrace();
    And it is called like this:
    changeScreen(new AddWordPanel());The instantiation of the new instance is what is causing the memory problems, but I can't think of a way around it.

  • Problem with Dynamically accessing EJB Class objects in WL 7.0 SP1

    I am trying to build a component which has the ability to instantiate and execute
    an known EJB method on the fly.
    I have managed to build the component but when I try and execute it I get a ClassNotFoundException.
    I know that the EJB I am trying to invoke is deployed and available on the server,
    as I can see it in the console, I also seen to have been able to get the remote
    interface of the object, my problem occurs when I try and access the class object
    so I can perform a create on the object and then execute my method
    The code I have written is below:
    private Object getRemoteObject(Context pCtx, String pJNDIName, String pHomeBean)
    throws Exception {
         String homeCreate = "create";
         Class []homeCreateParam = { };
         Object []homeCreateParamValues = {};           
    try {  
    //This call seems to work and doesn't throw an exception     
    Object home = pCtx.lookup(pJNDIName);
    //However this call throws a java.lang.ClassNotFoundException
    Class homeBean = Class.forName(pHomeBean);
    Method homeCreateMethod = homeBean.getMethod(homeCreate,homeCreateParam);
    return homeCreateMethod.invoke(home, homeCreateParamValues);
    } catch (NamingException ne) {             
    logStandardErrorMessage("The client was unable to lookup the EJBHome.
    Please make sure ");
    logStandardErrorMessage("that you have deployed the ejb with the JNDI
    name "+pJNDIName+" on the WebLogic server ");
    throw ne;
    } catch (Exception e) {
    logStandardErrorMessage(e.toString());
    throw e;     
    Any advice would be really appreciated, I'm fast running out of ideas, I suspect
    it has something to do with the class loader but I'm not sure how to resolve it
    Regards
    Jo Corless

    Hello Joanne,
    Congratulations! I'm very happy that you've managed to fix your problem. It's
    always essential to understand how to package applications when deploying on BEA
    WebLogic. Usually, by throwing everything into an EAR file solves just about all
    the class loader problems. :-) Let us know if you have any further problems that
    we can assist you with.
    Best regards,
    Ryan LeCompte
    [email protected]
    http://www.louisiana.edu/~rml7669
    "Joanne Corless" <[email protected]> wrote:
    >
    >
    I've fixed it!!!!!!!!
    Thanks to everyone who gave me help!!!!
    The class loader was the culprit which is what I suspected all along.
    As soon
    as I put the 2 jar files I was using into an EAR file the problem went
    away!!!!!
    Thanks again
    Jo Corless
    "Ryan LeCompte" <[email protected]> wrote:
    Hello Joanne,
    As Mr. Woollen mentioned, I also believe it's a problem with the class
    loader.
    You need to be careful how you arrange your EJBs, because WebLogic has
    a specific
    method in which it loads classes in an EAR, JAR, and WAR file(s). Please
    refer
    to http://dev2dev.bea.com/articles/musser.jsp for more information about
    BEA WebLogic
    class loading mechanisms and caveats. Also, try printing out the various
    methods
    that are available on the object that was returned to you via reflection.
    For
    example, use the getMethods() method, which returns an array of Method
    objects
    that you can subsequently cycle through and print out the various method
    names.
    This way you can discover if the class found/returned to you is indeed
    the one
    you intend to locate.
    Hope this helps,
    Ryan LeCompte
    [email protected]
    http://www.louisiana.edu/~rml7669
    Rob Woollen <[email protected]> wrote:
    I believe the issue is the home interface class for this EJB is not
    available in the class loader which is doing the reflection.
    If you do:
    getClass().getClassLoader().loadClass(homeInterfaceClassName)
    I suspect it will fail. Reflection still requires that the class be
    loadable.
    -- Rob
    Joanne Corless wrote:
    Hi Slava,
    If I make my code look like you describe below I get a compliationerror telling
    me that
    home.getMethod() is not recognised (no such method)
    If I change it slightly and use
    Method homeCreateMethod =
    home.getClass().getMethod(homeCreate,homeCreateParam);
    The code will compile OK but when executed it still throws a NoSuchMethodException
    Any ideas ?
    Thanks for your help so far
    Regards
    Jo Corless
    Your code should look like
    Object home = pCtx.lookup(pJNDIName);
    Method homeCreateMethod =
    home.getMethod(homeCreate,homeCreateParam);
    return homeCreateMethod.invoke(home, homeCreateParamValues);
    Regards,
    Slava Imeshev
    "Joanne Corless" <[email protected]> wrote in message
    news:[email protected]...
    Hi Ryan,
    I also wanted to mention that if you do a "header search" in this
    particular
    newsgroup
    with the search query as "reflection", you will see many previousmessages
    regarding
    reflection and EJBs. I believe you could learn a lot from thedifficulties
    that
    others have faced and solved.I tried that and although there was a number of similar cases noneof them
    actually
    seem to fix my issue. Thanks for the suggestion though
    Are the EJBs that you are trying to access accessible via your
    system
    classpath?
    Try to avoid having them accessible via the main system classpath,and
    only bundle
    them in your appropriate EJB jar files (contained in an EAR file,for
    example).Maybe I should have laid the problem out a little clearer.
    I have a number of EJB's bundled up in a JAR file which is hot deployedto
    the
    server. Within this first JAR file is an EJB (SSB) component that
    needs
    to
    be
    able to invoke a known method on another EJB. This second EJB may
    or
    may
    not be
    within the first JAR file but it also will be hot deployed.
    The component trying to invoke the method on the 2nd EJB has to
    be
    able to
    create
    an instance of the 2nd EJB without actually knowing anything bar
    a
    JNDI
    Name which
    is passed in at runtime.
    I can get as far as doing the
    Object home = pCtx.lookup(pJNDIName);
    This returned a class with the name
    "com.csc.edc.projects.allders.httppostoffice.postman.PostmanBean_mp8qy2_Home
    Impl_WLStub"
    My problem seems to occur when I try and invoke the create method
    Method homeCreate = home.getClass().getMethod("create", new Class[0]);
    My code throws a java.lang.NoSuchMethodException at this point so
    I
    am
    unable
    to progress to the next step of :
    Object bean = homeCreate.invoke(home, null);
    So I can return the instantiated bean back to the calling client.
    Why am I getting the NoSuchMethodException, is is because I am gettinga
    stub
    back rather than the home interface and if so how do I get the truehome
    interface
    from the bean
    Thanks in advance
    Jo Corless

  • Problems with Sandisk 16Gb microsdhc Class 2 in N8...

    Hello to you all..
    Yesterday my 16Gb microSDHC died... I wanted to charge my phone and suddenly the phone freezes and it refused to turn back on. So I decided to eject the 16Gb card and gladly I managed to turn my phone back on. So the problem was the microSDHC card. I had tested it with my PC but no response..
    This is my 2nd 16Gb card!! I never had problems with the standard 8Gb card..
    So finally I went to the shop and returned the dead card and got a refund.So now I am back to my old 8Gb card and till now everything works fine.
    But is there somebody else that had problems with a 16Gb microSDHC card in a N85 (particulary Sandisk)? Because I think the card reacted on some sort of Voltage level that he could not handle... Can this be possible?
    Black Nokia N97, productcode 0585162 FW V20.0.19 NL and 8Gb microSDHC A-data card

    hi n97fanboy
    The class thing is to do with the minimum write speed of the cards, and thus the class only describes "how good" a card is for the type of device the card is used with. Some devices require slower speed cards than others, some devices might require faster ones. Grschinon further up this thread indicated that class 2 may be too slow for the N85, and that it's minimum write speed is that of a class 4, which is the class of the micro SHDC card that the UK version of the N85 is supplied with. This makes sense.
    However, the Nokia website states that the N97 and N85 is compatible with their Class 2 16GB card, but we're not sure that this is correct given the behaviour of Sandisk Class 2 16GB cards in the device (I've had one fried, and almost lost the second one). Personally I've gone back to the 8GB Class 4 supplied with the phone, and will try and find a larger class 4 or above card at a later date.
    I'm sorry I can't help with the best card for the N97 as I've only played with the device in the Nokia Store. If it comes supplied with a microSDHC card, check for the digit on that card. If you do decide to upgrade it to a larger card, you should stick to the same class number it has or a larger one, from the experiences dkawa and myself have had with the N85. Best to try and get someone from Nokia's technical department's to confirm.
    HTH
    S.
    Black/Copper N85 sw v.30.019 Nokia 8GB Class 4 microSDHC

  • Problem with name of Servlet Class

    Hi to all,
    I have a class named AClassName and it work fine when a spider come in my web site he try to connect to the class named aclassname. I try to create a class with all lower case letter, but in windows system it's not possibile to have in the same directory a file named AClassName.class and one with the name aclassname.class
    Any help will be appreciated
    Regards
    Rinaldo

    you can solve this using servlet mapping,
    which is the correct way to call servlets,
    instead of using the invoker
    <servlet-mapping>
       <servlet-name>ListaLoc</servlet-name>
       <url-pattern>/listaloc</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
       <servlet-name>ListaLoc</servlet-name>
       <url-pattern>/ListaLoc</url-pattern>
    </servlet-mapping>

  • Problem with axis2 and QName class

    Hello,
    We have deployed AXIS2 library with a library project (J2EE server component) as it is specify by a SAP guide. We deployed the sda file correctly and we know how to reference this library in Portal Application and J2ee Module WEB or EJB.
    The problem is when we want to use internally javax.xml.namespace.QName is thrown an exception. This exception is shown bellow:
    java.lang.LinkageError: loader constraints violated when linking javax/xml/namespace/QName class
    at wpt.ConventerStub.populateAxisService(ConventerStub.java:52)
    at wpt.ConventerStub.<init>(ConventerStub.java:100)
    at wpt.ConventerStub.<init>(ConventerStub.java:89)
    at wpt.ConventerStub.<init>(ConventerStub.java:140)
    at wpt.ConventerStub.<init>(ConventerStub.java:132)
    at com.eadscasa.axis2.Axis2Converter.doContent(Axis2Converter.java:26)
    In the guide is said that we have to deploy a library project to avoid this problem but we still are getting it. I have realized that Qname class is a basic class into the JDK 1.4 and in different projects as AXIS2 making revision about this class.
    How can I deploy these libraries (jars) without dependencies with SAP Portal libraries?
    Is there any way to setup the classloader to avoid this error?
    In the documentation about this kind of project it is said that you cannot deploy libraries (*.jar) with the same name. I donu2019t know if it happens the same with the class.
    We have to develop web Services with Soap 1.2 specification, SAML etc and we need to develop this class because sap portal doesnu2019t support this kind o features.
    Regards,
    Daniel Urbano

    Hi,
    Firstly thanks for you reply. I generate the client with wsdl2java tool as it is mentioned in AXIS2 documentation and as you specified in your blog. After I follow the steps:
    Step 1 - Generating the Axis2.war
    Step 2 u2013 Modify the service *.aar file
    Step 3 u2013 Create the J2EE library
    Step 4 u2013 Create the J2EE application wrapping the web module axis2.war
    We know how to make the step 1,2 and 3 but there is a little mess in the last step. Donu2019t worry about this because we got the general idea in this document. According to the guide the main problem is to solve a classloading conflict because it only can be loaded the libraries once and you need the AXIS2 libraries for *.arr and for the axis2 engine to be able to manage this module. This problem it is solved making a J2EE library Project and putting a reference to this library in the module, applications or project, which have to use AXIS2 libraries.
    We have 3 different kind of projects that we can develop according to Sap Netweaver:
    J2EE Project:
    ·     Web Module Project: Resulting a war file.
    ·     Enterprise Application Project: Resulting a ear file
    ·     EJB Module Project: Resulting a war file.
    Portal Application
    ·     Portal Application Project: Resulting a par file.
    In any project mentioned upper we know how to deploy these with a reference to this library project that previously we deployed successfully in the portal. But the problem is when we are going to check this module running it the server give us an exception.
    java.lang.LinkageError: loader constraints violated when linking javax/xml/namespace/QName class
    at wpt.ConventerStub.populateAxisService(ConventerStub.java:52)
    at wpt.ConventerStub.(ConventerStub.java:132)
    at com.eadscasa.axis2.Axis2Converter.doContent(Axis2Converter.java:26)
    This exception is because exist classes into the axis2 libraries as javax.xml.namespace.Qname that are in SAP Portal libraries into the J2ee Server (JDK 1.4). This conflict is mentioned in the blog u201C360° View on enterprise SOAu201D where Michael Koegel, the author, says that if you want that AXIS2 libraries works you will have to work around with the dependencies of libraries.
    The main problem in this point it is that we donu2019t know how to resolve this dependencies and if it is possible that other module of SAP Portal wonu2019t work fine if we change the base libraries. AXIS2 has newer classes than SAP Portal and it is possible that we can break other SAP Portal functions. In this case if we can not get that AXIS2 and SAP Portal co-exist in the same server we will probably have to change our way to get the enterprise objectives.
    In order to resolve these dependencies we have found a SAP Note Number: 1138545. In this note it is said that we can setup the precedence class loader in the visual admin  into the deploy service. If you add your AXIS2 library at the beginning of StandardAplicationReferences variable in the deploy service, it is loaded the axis2 libraries first and it works the services but other portal functionality fails. This variable it is used to load the libraries precedence for all applications in the Server. If we could setup the class load precedence in a web module project or the system doesnu2019t take into account the server libraries for this module it will work perfectly.
    If you could specify more the last point of your manual, I will appreciate it.
    Regards,
    Daniel Urbano

  • Problem with combination of LabVIEW classes (dynamic dispatch), statechart module and FPGA module

    SITUATION:
    - I am developing a plug-in-based software with plug-ins based on LabVIEW classes which are instanced at run-time. The actual plug-in classes are derived from generic plug-in classes that define the interfaces to the instancing VI and may provide basic functionality. This means that many of the classes' methods are dynamic dispatch and methods of child classes may even call the parent method.
    - Top-level plug-ins (those directly accessed by the main VI) each have a run method that drives a plug-in-specific statechart.
    - The statechart of the data acquisition plug-in class (DAQ class) calls a method of the DAQ class that reads in data from a NI FPGA card and passes it on to another component via a queue.
    PROBLEM:
    - At higher sampling rates, an FPGA-to-host FIFO overflow occurs after some time. When I "burden" the system just by moving a Firefox browser window over the screen, the overflow is immediately triggered. I did not have this kind of problem in an older software, where I was also reading from an FPGA FIFO, but did not make use of LabVIEW classes or statecharts.
    TRIED SOLUTIONS (WITHOUT SUCCESS):
    - I put the statechart into a timed loop (instead of a simple while loop) which I assigned specifically to an own core (I have a quad-core processor), while I left all the other loops of my application (there are many of them) in simple while loops. The FIFO overflow still does occur, however. 
    QUESTION:
    - Does anybody have a hint how I could tackle this problem? What could be the cause: the dynamic dispatch methods, the DAQ statechart or just the fact that I have a large number of loops? However, I can hardly change the fact that I have dynamic dispatch methods because that's the very core of my architecture... 
    Any hints are greatly appreciated!
    Message Edited by dlanger on 06-25-2009 04:18 AM
    Message Edited by dlanger on 06-25-2009 04:19 AM
    Solved!
    Go to Solution.

    I now changed the execution priority of all the VIs involved in reading from the FPGA FIFO to "time critical priority (highest)". This seems to improve the situation very much: so far I did not get a FIFO overflow anymore, even when I move around windows on the screen. I hope it stays like this...

  • Problems with Factory CXmlCtx, xmlnode class on Solaris

    Hi,
    I am using Oracle 10g XDK and Iam facing the following problem in Solaris (this works fine in IBM AIX and HP-UX).
    CXmlCtx* ctxp = new CXmlCtx();
    Factory< CXmlCtx, xmlnode>* fp;
    fp = new Factory< CXmlCtx, xmlnode>( ctxp);
    parser->domparser = fp->createDOMParser(DOMParCXml, NULL);
    The code dumps a core at the 4th line (createDOMParser) function. The code was compiled with SunWSPro compiler /opt/SUNONE8/SUNWspro/bin/cc.
    Any pointers to the resolution of this issue will be appreciated.
    Thanks

    Yes, that is the Factory pattern you describe. The client programs are going to call your createFoo() method and get back an instance of a subclass of Foo. Typically this pattern is used where there is some external entity that determines what subclass will be returned -- for example a system property -- and the client programs call createFoo() with no arguments. In this case reflection is used to create the instance, and your base class does not need to know anything about any subclasses.
    However, if your client programs can influence the choice of subclass, then they will have to pass some kind of parameter into createFoo(). At this point, createFoo() requires some decision logic that says "create this, or that, depending on the input parameter". And if that parameter is simply a code that enables the client programs to say "Give me a ChocolateFoo instance", then returning "new ChocolateFoo()" is the most straightforward design. But in this case, why can't the client program do that?
    If you don't like the base class having to know about subclasses (and you shouldn't be happy if it does), then you could have a helper class -- FooFactory -- that contains only the static method createFoo(). This class would know about Foo, and about any of its subclasses that it can produce instances of. It's still a maintenance point, no avoiding that, but at least it is off by itself somewhere.

  • Problem with XML inside a class

    OK. This is a setter function in one of my classes. It's
    supposed to load an xml document into an array when i call it with
    the address of the xml document. When I debug i see the array but
    there's no data in it.
    I'm pretty sure i'm doing something just really dumb that's
    probably really easy to spot... sorry - i'm new to this!
    Thanks so much!
    (i've included the code, and the xml file under the code so
    you can see what I'm aiming at...)

    Inside call back handlers the members of the class go out of
    scope. You can solve this in several ways. In the code you posted
    you can use a local reference to the class (the current object). In
    other cases you might want to use the Delegate Class.

  • Problem with subclass and super class

    here is the things i wanted to do
    /*Write a method that takes the time as three integer arguments (hours, minutes and seconds),
    and returns the number of seconds since the last time it was twelve o'clock.
    Write a program that uses this method to calculate the amount of time in seconds between two times,
    assuming both are within one twelve hour cycle of a clock.
    here is a class to find the last time closes to 120'clock in sec.
    import java.io.*;
    public class Timer {
         int converter = 60;
         int secinTwelveHour = 43200;
         int converter2 = 12;
    public int timerTime (int hour, int min, int sec){
              int totalSec = 0;
              //Finding the time
              if (hour > 0 && hour <= 24 && min > 0 && min <=60 && sec > 0 && sec <= 60 && hour <= 11){
                   //find last 12 o'Clock
                   hour = converter2 + hour;
                   //change to sec time
                   totalSec = (hour * converter * converter) + (min * converter) + sec;
              }else{     
         if (hour > 0 && hour <= 24 && min > 0 && min <=60 && sec > 0 && sec <= 60 && hour >= 12){
                   //find last 12 o'Clock in sec
                   totalSec = ((hour * converter * converter) + (min * converter) + sec) - secinTwelveHour;
         }else{
              return -1;
    }//End of return -1      
              }//End of first else statment
         return totalSec;     
         }//End of timerTimer
    }//End of Program     
    and here is the super class which uses the class aboved
    import java.io.*;
    public class FindTime {
    public int find2Time (int totalSec1, int totalSec2){
              int timeSec = 0;
              if(Timer.totalSec1 > Timer.totalSec2)
              timeSec = Timer.totalSec1 - Timer.totalSec2;
              else
              timeSec = Timer.totalSec2 - Timer.totalSec1;
         return timeSec;     
         }//End of find2Time
    public static void main( String [] arg){
         // Construct an instance of the Timer class
              Timer timerClass = new Timer();
              // Make a couple of calls of the method
              int totalSec1 = timerClass.timerTime(12, 3, 45);
              int totalSec2 = timerClass.timerTime(14, 23, 60);
              timeSec1 = find2Time (totalSec1, totalSec2)
              // Now print the values we got back
              System.out.println("Last closes Sec to 12 o'clock" + totalSec1);
              System.out.println("Last closes sec to 12 o'clock" + totalSec2);
              System.out.println("Last closes sec to 12 o'clock" + timeSec);
         }//End of main method
    }//End of Program     
    Now i'm having program with the compliing can anyone help me out like tell me what i'm doing wrong and give me a bit of a code so that i can have a push start
    thanks you

    Does this do what you want? It is in two seperate classes.
    import java.io.*;
    public class FindTime {
    public static void main( String [] arg){
    int timeSec = 0;
    // Construct an instance of the Timer class
         Timer timerClass = new Timer();
         // Make a couple of calls of the method
         int totalSec1 = timerClass.timerTime(12, 3, 45);
         int totalSec2 = timerClass.timerTime(14, 23, 60);
         timeSec = java.lang.Math.abs(totalSec1-totalSec2);
         // Now print the values we got back
         System.out.println("Last closes Sec to 12 o'clock " + totalSec1);
         System.out.println("Last closes sec to 12 o'clock " + totalSec2);
         System.out.println("Last closes sec to 12 o'clock " + timeSec);
         }//End of main method
    }//End of Program
    import java.io.*;
    public class Timer {
    int converter = 60;
    int secinTwelveHour = 43200;
    int converter2 = 12;
    public int timerTime (int hour, int min, int sec){
         int totalSec = 0;
         //Finding the time
         if (hour > 0 && hour <= 24 && min > 0 && min <=60 && sec > 0 && sec <= 60 && hour <= 11){
         //find last 12 o'Clock
         hour = converter2 + hour;
         //change to sec time
         totalSec = (hour * converter * converter) + (min * converter) + sec;
         } else {
         if (hour > 0 && hour <= 24 && min > 0 && min <=60 && sec > 0 && sec <= 60 && hour >= 12){
         //find last 12 o'Clock in sec
         totalSec = ((hour * converter * converter) + (min * converter) + sec) - secinTwelveHour;
         } else {
              return -1;
         }//End of return -1
    }//End of first else statment
    return totalSec;
    }//End of timerTimer
    }//End of Program

  • Problem with extending an extended class

    Hi JDC
    I have to use a scrolled list several times among my program so I create a class named ScrolledList that extends Jpanel and an inner class that extends ScrolledLIst.
    The problem shows up when I?m trying to add an item inside the inner class, the code pass compilation, it even enter the addItem() but its dont add item
    public class ScrolledList extends JPanel{
      DefaultListModel dlm = new DefaultListModel();
      JList list = new JList();
      JScrollPane js = new JScrollPane(list);
      ScrolledList(){
        setLayout(new BorderLayout());
        add(js,BorderLayout.CENTER);
    }here is the class i use whenever i need this scrolled list:
    public class innerClass extends ScrolledList{
      public void addItem(String item){
        System.out.println("addItem invoked...");
        this.dlm.addElement(item);
      public static void main(String[] args) {
            JFrame frame = new JFrame("InnerClass");
            frame.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {System.exit(0);}
            frame.getContentPane().add(new innerClass(),
                                       BorderLayout.CENTER);
            frame.setSize(400, 125);
            frame.setVisible(true);
            innerClass ic = new innerClass();
            ic.addItem("Shay");
    }what im doing wrong(code example please)?
    Thanks

    Hi
    i tried this , its still dont add item to the list:
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class ScrolledList extends JPanel{
      //List variables
      private DefaultListModel dlm = new DefaultListModel();
      private JList clientsList = new JList(dlm);;
      private JScrollPane clientScroll = new JScrollPane(clientsList);
      public final  boolean PRINTLN=true;
      public  void p(String out){
        if(PRINTLN)
          System.out.println(out);
      public ScrolledList() {
        try {
          jbInit();
        catch(Exception e) {
          e.printStackTrace();
      private void jbInit() throws Exception {
        this.setLayout(new BorderLayout());
        this.add(clientScroll);
       public void addClient(String client){
        p("addClient invoked....");
        dlm.addElement(client);
      public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.getContentPane().add(new ScrolledList());
          frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
              System.exit(0);
          frame.setSize(300,300);
          frame.setVisible(true);
          ScrolledList s  = new ScrolledList();
          s.addClient("Shay");
    }thanks

  • Problem with 1.5 Scanner class

    I'm trying to learn to use the new Scanner class in Java 1.5. I wrote this little program:
    import java.util.*;
    public class Howdy {
      public static void main(String[] args) {
        Scanner reader = Scanner.create(System.in);
        String name = reader.readLine();
        System.out.println("Hello, " + name);
    }When I try to compile it, I get these complaints:
    Howdy.java:5: cannot find symbol
    symbol  : method create(java.io.InputStream)
    location: class java.util.Scanner
        Scanner reader = Scanner.create(System.in);
                                ^
    Howdy.java:6: cannot find symbol
    symbol  : method readLine()
    location: class java.util.Scanner
        String name = reader.readLine();
                            ^
    2 errorsI know I have the 1.5 goodies turned on, because I can (for example) use the enhanced for loop.
    What's the problem?

    Can someone tell me what I'm doing wrong here.....I have a input file that has 7 rows and 10 columns. I posted the error I'm getting below. Thanks.
    import java.util.Scanner;
    import java.io.File;
    import java.io.IOException;
    public class windChill
    public static void main(String[] args) throws IOException
    File inputFile = new File("input.txt");
    Scanner fscan = new Scanner ( inputFile );
    Scanner lscan;
    lscan = new Scanner(fscan.nextLine());
    int [][] chill = new int [7][10];
    for (int i = 0;i < 7; i++)
    for (int j = 0;j < 10; j++)
    chill[i][j] = lscan.nextInt();
    lscan = new Scanner(fscan.nextLine());
    System.out.println(chill[1][9]);          
    ----jGRASP exec: java windChill
    Exception in thread "main" java.util.NoSuchElementException: No line found
         at java.util.Scanner.nextLine(Unknown Source)
         at windChill.main(windChill.java:37)
    ----jGRASP wedge2: exit code for process is 1.
    ----jGRASP: operation complete.

  • Problem with project stock valuation class

    Dear All,
    We have an issue regarding the Revenue Inventory and Capital Inventory. There is a certain balance amount which should be in capital but system is showing in Revenue and vice versa.
    The reason for this is that when the material was created, in some materials the main valuation class was 3032(Project) and in some it was maintained as 3030(revenue). But project stock valuation class was not maintained.
    Now the problem persists in the G/L balances, the G/L of project stock (132006)displays some amount of revenue(132000) and vice versa.
    We tried to maintain the project stock valuation class (3032) for materials for which the main valuation class is 3030 (Revenue),but still the G/L for revenue (132000) is getting hit.
    At the end, the requirement is that G/L for revenue (132000) should hit when revenue procurement is there and G/L for capital (132006) should hit when capital procurement is there.
    Kindly suggest the way forward.
    Regards,
    Harsh

    Thanks Venkat, we have thought of the same as a last stop but there are hundreds of materials which has this problem and there would be many open documents for them.
    If anything could be suggested other then this, and I wanted clarification on one more point that the materials for which main valuation class was 3030 and later we added 3032 in project stk Val class but after maintaining it. When we procure(Capital procurement), it is still showing the balance in G/L 132000(Revenue).
    Regards,
    Harsh

  • Problem with scope, inside custom class

    I'm having trouble with the code below- can anybody explain
    why "class_obj" is undefined in my xml.onLoad handler? even though
    its available through out the class instance?

    See my answer to your other post.

Maybe you are looking for