Help!!!

Hi :slight_smile:

I’ve updated my project with the new vaadin jar (6.2.1) but since that no ui component is displayed no textfields and no labels no icons …

Can you help please? :slight_smile:

Thanks :slight_smile:

Is this resolved already? You really have to give more info to work on if you want support for your problem.

OK I’ll explain more,
I have realized a vaadin project with the 6.1.2 jar and it worked fine. But I realized that a new version is available (6.2.1). So I downloaded the new jar and I replaced the older jar with the new one in the directory WebContent/WEB-INF/lib.
I recompliled the project and tried to execute it again but I found that the ui components are not displayed anymore :frowning:

My application starts with a login window that contains 4 textfields and a login button but since I replaced the old jar by the new one these ui components are not drawed any more and I optain a blank window on the browser :frowning:

The code of my loginWindow is the following code :

package com.kopiright.vkopi.lib.visual;

import com.vaadin.terminal.ExternalResource;
import com.vaadin.terminal.Sizeable;
import com.vaadin.ui.Alignment;
import com.vaadin.ui.Button;
import com.vaadin.ui.FormLayout;
import com.vaadin.ui.Label;
import com.vaadin.ui.Panel;
import com.vaadin.ui.TextField;
import com.vaadin.terminal.ThemeResource;
import com.vaadin.ui.VerticalLayout;
import com.vaadin.ui.Window;

public class LoginWindow extends Window {

public LoginWindow() {
super(“Authentication Required !”);
setName(“Login”);
setContent(layout = new VerticalLayout());
initUI();
layout.setMargin(true);
getContent().setWidth(null);
}

private void initUI() {
loginPanel = new Panel(“Please login…”);
loginForm = new FormLayout();
loginButton = new VerticalLayout();
login = new Button();
login.setIcon(new ThemeResource(“resource/login.gif”));
login.setStyleName(Button.STYLE_LINK);
loginButton.addComponent(login);
loginButton.addComponent(new Label(“Login”));
loginButton.setSpacing(false);
username = new TextField(“Username”);
password = new TextField(“Password”);
url = new TextField(“URL”, “jdbc:sapdb://hot.dms.at/KWAPIL?unicode=yes”);
jdbcDriver = new TextField(“JDBC Driver”, “com.sap.dbtech.jdbc.DriverSapDB”);

username.setRequired(true);
password.setRequired(true);
password.setSecret(true);
url.setRequired(true);
jdbcDriver.setRequired(true);

url.setWidth("260px");
jdbcDriver.setWidth("200px");
loginPanel.setWidth(null);
loginPanel.setHeight(null);
loginPanel.setStyleName("light");

layout.addComponent(loginPanel);
loginForm.setMargin(true);
loginForm.setStyleName("loginForm");
loginForm.addComponent(username);
loginForm.addComponent(password);
loginForm.addComponent(url);
loginForm.addComponent(jdbcDriver);
loginForm.addComponent(loginButton);

loginPanel.setContent(loginForm);
layout.setComponentAlignment(loginPanel, Alignment.MIDDLE_CENTER);
login.addListener (new Button.ClickListener() {
    public void buttonClick (Button.ClickEvent event) {
      KopiApplication.getApplication().authenticate((String)username.getValue(),
                                                    (String)password.getValue(),
                                                    (String)url.getValue(),
                                                    (String)jdbcDriver.getValue());
      open(new ExternalResource(KopiApplication.getApplication().getURL()));
    }
  });

}

private Panel loginPanel;
private FormLayout loginForm;
private VerticalLayout layout;
private Button login;
private TextField username;
private TextField password;
private TextField url;
private TextField jdbcDriver;
private VerticalLayout loginButton;
}

in the application class I have this :

/*

  • @Override
    */
    public void init() {
    KopiApplication.instance = this;
    setMainWindow(new LoginWindow());
    }

it works fine with the 6.1.2 jar but When I’ve replaced the 6.1.2 jar by the new jar 6.2.1 I optained a blank window(no TextFields and no Buttons and icons)

Thanks for your support :slight_smile:

I just tested out your code. Did a full copy your code to a file (had to remove the content of the button’s buttonClick() as it referenced some other code of yours) and initialized it with this application class:

import com.vaadin.Application;
import com.vaadin.ui.Window;

public class PlaygroundApplication extends Application {
    @Override
    public void init() {
        Window mainWindow = new LoginWindow();
        setMainWindow(mainWindow);
    }

}

Worked like a charm with Vaadin 6.2. Here’s a screenshot:

yes in my application class I have this :

/*

  • @Override
    */
    public void init() {
    KopiApplication.instance = this;
    setMainWindow(new LoginWindow());
    }

but it doesen’t work since I have replaced the old jar by the new one and when i restore the old version of the vaadin jar it works again

Is there any problem when I replace an old jar with a new one???
To help you more, What I am doing, I do not compile with eclipse but I compile my project away and make a jar of my classes and put it in the lib directory

One suggestion based on the symptoms: Have you created any new widgets (client-side) for your application? The problem might have something to do with the widgetset being incompatible. Widgetset recompilation should help. If you are using Eclipse, there is a button for this in the toolbar that says “Compile Vaadin widgets”.

Also make sure you do a full reload in your browser (like shift-reload).

No I did not create any new widget for my application. I only replaced the old jar by a new one and recompile my project again

Should not be any problems with changing the version. As you can see, the window works for me, and we have similar application classes. Seems like the problem has to be somewhere else.

You can try using the debug window to analyse your layouts - just put ?debug at the end of your URL. Also Inspector for Chrome, Developer Tools for IE8 or Firebug for Firefox could give you more info. From there you can check if the components are actually in the HTML, and does some of the layouts have a 0px height or width.

Just to be sure, could you check that you don’t have somehow corrupted version of the vaadin-6.2.1.jar file?

The file should be 3 393 923 bytes of size and the MD5 hash is as follows:

MD5 (vaadin-6.2.1.jar) = c18ffdda0b2fbfcf2c2ad0180578c9dd

One possible reason - do you have VAADIN resources unpacked into the webapp/VAADIN folder of your app or use static resources which are automatically served from inside the Vaadin JAR ? In case of first assumption, if you did not replace them with new ones from 6.2 version, client side may not start.

I think I know what the problems is - I too suffer from the same symptoms.

If you are on Google Chrome v4, for 6.2 to render correctly, the servlet context mapped in web.xml
must
match the resource folder named VAADIN.

ie:

<servlet-mapping>
		<servlet-name>Vaddin_test Application</servlet-name>
		<url-pattern>/Playground/*</url-pattern>
	</servlet-mapping>

wont work it needs to be:

<servlet-mapping>
		<servlet-name>Vaddin_test Application</servlet-name>
		<url-pattern>/VAADIN/*</url-pattern>
	</servlet-mapping>

I am guessing either chrome or the appserver has problems figuring out/mapping back the servlet context from the the necessary resources in the VAADIN folder.

This seems to be a google chrome only issue, it will work fine in IE Didn’t bother trying on FF. Although, if it was working before it might be a new bug introduced just recently.