Thursday, August 4, 2011

Re: Problems with my first application

Its best do the login in a filter. If you do the login in a filter always execute before servlets.

If you want use a servlet to do login and have other servlet with similar url pattern read this. With filters you can explicity the order of execution, with servlet no (is not define in the specification, so is the serlvet container decide, unpredictable).

Juan


2011/8/4 Luca Meloni <lmeloni91@gmail.com>
I have two servlets in my project:
 - The login servlet tooks the username and the password, checks if
user data is correct and eventually returns the name of the related
database;
 - The debug servlet for now can only output a string.
In MainEntryPoint I call the login servlet before the debug servlet,
but I get an output that indicates that the debug servlet is called
before the login servlet; this is the code snippet:

                   logInService.logIn(userNameTextBox.getText(),
passWordTextBox.getText(), new AsyncCallback<String>() {

                       @Override
                       public void onFailure(Throwable caught) {
                           Window.alert("Log in failed!");
                       }

                       @Override
                       public void onSuccess(String result) {
                           dataBaseString = result;
                       }
                   });

                   deBugService.outPut("2) DataBase: " +
dataBaseString, new AsyncCallback<Void>() {

                       public void onFailure(Throwable caught) {
                       }

                       public void onSuccess(Void result) {
                       }
                   });

And this is the related output:

2) DataBase: null
1) DataBase: dataBaseName

On Aug 4, 4:00 pm, Juan Pablo Gardella <gardellajuanpa...@gmail.com>
wrote:
>  "Is it necessary to include also Hibernate
> Validator?" No exactly hibernate validator, some jsr303 implementation. I
> think is necesary.
>
> "I tried to run again the project but the servlets were not
> executed in the correct order"
>
> I'm blind. Can you explain a little more your problem?
>
> Juan
>
> 2011/8/4 Apocalypto <lmelon...@gmail.com>
>
>
>
>
>
>
>
> > Thanks for the reply, I included "validation-api-1.0.0.GA.jar" and
> > "validation-api-1.0.0.GA-sources.jar" to project libraries and the
> > errors were solved. Is it necessary to include also Hibernate
> > Validator? I tried to run again the project but the servlets were not
> > executed in the correct order
>
> > On Aug 4, 1:48 pm, Juan Pablo Gardella <gardellajuanpa...@gmail.com>
> > wrote:
> > > Its a classpath issue:
>
> > >         [ERROR] Line 97: ConstraintViolation cannot be resolved to a
> > > type
>
> > > Add the javax.validation
> > > jar<
> >http://mvnrepository.com/artifact/javax.validation/validation-api/1.0...>
> > > (jsr303)
> > > and some implementation<
> >http://stackoverflow.com/questions/1384968/is-there-an-implementation...>
> > > .
>
> > > Juan
>
> > > 2011/8/3 Apocalypto <lmelon...@gmail.com>
>
> > > > Hello GWT world, I'm a student who is trying to learn how to develop
> > > > with GWT framework. I already know well Java language but I'm stuck
> > > > with my first application: it's a simple log in interface which stores
> > > > user data into cookies, but I can't understand why it doesn't work
> > > > properly.
>
> > > > MainEntryPoint
>
> > > >    private GWTLogInServiceAsync logInService =
> > > > GWT.create(GWTLogInService.class);
> > > >    private GWTDeBugServiceAsync deBugService =
> > > > GWT.create(GWTDeBugService.class);
> > > >    private String dataBaseString;
> > > > ...
> > > >            logInButton.addClickHandler(new ClickHandler() {
>
> > > >                public void onClick(ClickEvent event) {
> > > >                    dataBaseString = null;
>
> > > >                    logInService.logIn(userNameTextBox.getText(),
> > > > passWordTextBox.getText(), new AsyncCallback<String>() {
>
> > > >                        @Override
> > > >                        public void onFailure(Throwable caught) {
> > > >                            Window.alert("Log in failed!");
> > > >                        }
>
> > > >                        @Override
> > > >                        public void onSuccess(String result) {
> > > >                            dataBaseString = result;
> > > >                        }
> > > >                    });
>
> > > >                    deBugService.outPut("2) DataBase: " +
> > > > dataBaseString, new AsyncCallback<Void>() {
>
> > > >                        public void onFailure(Throwable caught) {
> > > >                        }
>
> > > >                        public void onSuccess(Void result) {
> > > >                        }
> > > >                    });
>
> > > >                    if (dataBaseString != null) {
> > > >                        logIn(userNameTextBox.getText(),
> > > > dataBaseString);
> > > >                    }
> > > >                }
> > > >            });
> > > > ...
> > > >    private void logIn(String userName, String dataBase) {
> > > >        Cookies.setCookie("userName", userName);
> > > >        Cookies.setCookie("dataBase", dataBase);
>
> > > >        Location.reload();
> > > >    }
>
> > > > GWTLogInServiceImpl
>
> > > > public String logIn(String userName, String passWord) {
> > > >        String dataBase = null;
>
> > > >        try {
> > > >            Class.forName("org.postgresql.Driver");
>
> > > >            Connection connection =
> > > > DriverManager.getConnection("jdbc:postgresql://localhost:5432/User
> > > > DataBase", postGreSQLUserName, postGreSQLPassWord);
>
> > > >            String query = "SELECT \"DataBase\" FROM \"User\" WHERE
> > > > \"Name\" = '" + userName + "' AND \"PassWord\" = '" + passWord + "'";
>
> > > >            ResultSet resultSet =
> > > > connection.createStatement().executeQuery(query);
>
> > > >            if (resultSet.next()) {
> > > >                dataBase = resultSet.getString("DataBase");
> > > >            }
> > > >        } catch (Exception exception) {
> > > >            exception.printStackTrace();
> > > >        }
>
> > > >        System.out.println("1) DataBase: " + dataBase);
>
> > > >        return dataBase;
> > > >    }
>
> > > > GWTDeBugServiceImpl
>
> > > >    public void outPut(String string) {
> > > >        System.out.println(string);
> > > >    }
>
> > > > I get the following output:
> > > > 2) DataBase: null
> > > > 1) DataBase: dataBaseName
>
> > > > Why does it execute GWTDeBugService before GWTLogInService? I'm using
> > > > NetBeans 6.9.1 with the latest GWT framework and GWT4NB plugin.
> > > > In addition, during compilation I get the following errors:
> > > > Validating newly compiled units
> > > >      [ERROR] Errors in 'jar:file:/{projectFolder}/lib/GWT2.3.0/gwt-
> > > > user.jar!/com/google/gwt/editor/client/EditorDriver.java'
> > > >         [ERROR] Line 20: The import
> > > > javax.validation.ConstraintViolation cannot be resolved
> > > >         [ERROR] Line 97: ConstraintViolation cannot be resolved to a
> > > > type
> > > >      [ERROR] Errors in 'jar:file:/{projectFolder}/lib/GWT2.3.0/gwt-
> > > > user.jar!/com/google/gwt/editor/client/impl/
> > > > AbstractSimpleBeanEditorDriver.java'
> > > >         [ERROR] Line 28: Name clash: The method
> > > > setConstraintViolations(Iterable<ConstraintViolation<?>>) of type
> > > > BaseEditorDriver<T,E> has the same erasure as
> > > > setConstraintViolations(Iterable<ConstraintViolation<?>>) of type
> > > > EditorDriver<T> but does not override it
> > > >      [ERROR] Errors in 'jar:file:/{projectFolder}/lib/GWT2.3.0/gwt-
> > > > user.jar!/com/google/gwt/editor/client/impl/BaseEditorDriver.java'
> > > >         [ERROR] Line 31: The import
> > > > javax.validation.ConstraintViolation cannot be resolved
> > > >         [ERROR] Line 67: ConstraintViolation cannot be resolved to a
> > > > type
> > > >      [ERROR] Errors in 'jar:file:/{projectFolder}/lib/GWT2.3.0/gwt-
> > > > user.jar!/com/google/gwt/editor/client/impl/SimpleViolation.java'
> > > >         [ERROR] Line 25: The import
> > > > javax.validation.ConstraintViolation cannot be resolved
> > > >         [ERROR] Line 40: ConstraintViolation cannot be resolved to a
> > > > type
> > > >         [ERROR] Line 43: ConstraintViolation cannot be resolved to a
> > > > type
> > > >         [ERROR] Line 44: Missing code implementation in the compiler
> > > >         [ERROR] Line 49: ConstraintViolation cannot be resolved to a
> > > > type
> > > >         [ERROR] Line 49: Missing code implementation in the compiler
> > > >         [ERROR] Line 70: ConstraintViolation cannot be resolved to a
> > > > type
> > > >         [ERROR] Line 72: ConstraintViolation cannot be resolved to a
> > > > type
> > > >         [ERROR] Line 73: ConstraintViolation<?> cannot be resolved to
> > > > a type
> > > >         [ERROR] Line 77: ConstraintViolation<capture#2-of ?> cannot
> > > > be resolved to a type
> > > >         [ERROR] Line 81: ConstraintViolation<capture#3-of ?> cannot
> > > > be resolved to a type
> > > >         [ERROR] Line 89: ConstraintViolation<capture#4-of ?> cannot
> > > > be resolved to a type
> > > >         [ERROR] Line 93: ConstraintViolation<capture#5-of ?> cannot
> > > > be resolved to a type
> > > >         [ERROR] Line 98: ConstraintViolation cannot be resolved to a
> > > > type
> > > >      [ERROR] Errors in 'jar:file:/{projectFolder}/lib/GWT2.3.0/gwt-
> > > > user.jar!/com/google/gwt/editor/client/testing/
> > > > MockSimpleBeanEditorDriver.java'
> > > >         [ERROR] Line 26: The import
> > > > javax.validation.ConstraintViolation cannot be resolved
> > > >         [ERROR] Line 35: The type MockSimpleBeanEditorDriver<T,E>
> > > > must implement the inherited abstract method
> > > > EditorDriver<T>.setConstraintViolations(Iterable<ConstraintViolation<?
> > > > >>)
> > > >         [ERROR] Line 107: Name clash: The method
> > > > setConstraintViolations(Iterable<ConstraintViolation<?>>) of type
> > > > MockSimpleBeanEditorDriver<T,E> has the same erasure as
> > > > setConstraintViolations(Iterable<ConstraintViolation<?>>) of type
> > > > EditorDriver<T> but does not override it
> > > >         [ERROR] Line 108: ConstraintViolation cannot be resolved to a
> > > > type
> > > >      [ERROR] Errors in 'jar:file:/{projectFolder}/lib/GWT2.3.0/gwt-
> > > > user.jar!/javax/validation/super/javax/validation/Configuration.java'
> > > >         [ERROR] Line 93: TraversableResolver cannot be resolved to a
> > > > type
> > > >         [ERROR] Line 105: ConstraintValidatorFactory cannot be
> > > > resolved to a type
> > > >         [ERROR] Line 182: TraversableResolver cannot be resolved to a
> > > > type
> > > >         [ERROR] Line 182: No source code is available for type
> > > > TraversableResolver; did you forget to inherit a required module?
> > > >         [ERROR] Line 194: ConstraintValidatorFactory cannot be
> > > > resolved to a type
> > > >         [ERROR] Line 194: No source code is available for type
> > > > ConstraintValidatorFactory; did you forget to inherit a required
> > > > module?
> > > >         [ERROR] Line 202: ValidatorFactory cannot be resolved to a
> > > > type
> > > >         [ERROR] Line 202: No source code is available for type
> > > > ValidatorFactory; did you forget to inherit a required module?
> > > >      [ERROR] Errors in 'jar:file:/{projectFolder}/lib/GWT2.3.0/gwt-
> > > > user.jar!/javax/validation/
> > > > ConstraintViolationException_CustomFieldSerializer.java'
> > > >         [ERROR] Line 30: ConstraintViolationException cannot be
> > > > resolved to a type
> > > >         [ERROR] Line 34: ConstraintViolationException cannot be
> > > > resolved to a type
> > > >         [ERROR] Line 34: No source code is available for type
> > > > ConstraintViolationException; did you forget to inherit a required
> > > > module?
> > > >         [ERROR] Line 39: ConstraintViolation cannot be resolved to a
> > > > type
> > > >         [ERROR] Line 39: ConstraintViolation cannot be resolved to a
> > > > type
> > > >         [ERROR] Line 40: ConstraintViolationException cannot be
> > > > resolved to a type
>
> ...
>
> read more »

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to google-web-toolkit+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.


--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to google-web-toolkit+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.

No comments:

Post a Comment