Unwanted behavior in PDK struts

Hi,
I am facing some peculiar problem. I have one portlet. That portlet has one anchor link. on click of that link opens another popup window where I have my struts portlet added. In the newly opened portlet i have one text box where ReservationId is input. If I input that Id and perform it is going to next screen. The problem is if I close that popup page and click on the parent page it will again open that window and showing a validation message(Reservation Id is required). I didn't understand one thing. I am not submitting any form. But by clicking on the link(on parent window) why form is getting submitted automatically to struts. Any Idea?
Regards,
Reddi

I too have the same problem....
the portlet was working fine, till i added a "pdk-html:file" tag and changed the enc-type to multipart/form-data.
when ever the form is submited, the message is shown "Portlet Unavailable".
I noticed that... even the execute method is not called on form submission.
Please... help.

Similar Messages

  • JDeveloper 10.1.3.2 pdk-struts taglib doesn't work

    Hi all,
    I just installed new jDev version (10.1.3.2) and I migrated all projects and setting from 10.1.3.1, but I still got a little/big problem with PDK-Struts taglib.
    In the previous jDev version portlet add-in wasn't include and to use pdk-struts integrate in the IDE I managed it as a JSP TagLib and everythings works fine.
    In new version the taglib in native and ready (it doesn't required to be registered!) to use but when I'm building the project I found and exception
    Error: java.lang.NoClassDefFoundError: org/apache/struts/taglib/html/FormTag
    mind!!!
    - the same project in version 10.1.3.1 has no problem to build
    - I checked and seleted all the libraries required
    Anyone knows why the new jDev version doesn't work??
    please someone helpMe!!!!
    Regards
    spig@

    Yea, I had those "is not a registered namespace in TLD" errors too, but regarding Struts HTML... I had to go to the Project properties and add the library.. (It went missing during conversion)
    Its frustrating and I know how you feel. Try this, try that and still doesnt work. My advice is to remove taglibs. Close Jdev. Open Jdev add them again. It have to work. Also it might help to delete class directories. Also be aware that some libraries are kept in "\WEB-INF\lib" and during conversion they remained (those libraries were from old Jdev you have to replace them with new version)
    So, all in all keep tryng, it have to work :)
    Good luck...

  • PDK-Struts Application requires pdkstruts.jar & pdk-struts-html.tld

    Hi All,
    Scenario is this, that I've created a pdk-struts application via JDeveloper with normal struts taglibs, and deployed it to Oracle Portal 10.1.4. default-action tags specified action.do is working fine and displays the welcome page within portlet region but after clicking any button within that welcome page opens a new browser page within same window and the URL pattern changes too.
    I want this to be executed within portlet region.
    Another problem is this, when I tried to use pdk-struts-html.tld within application;
    first warning within JDeveloper is this; Metadata Namespace for pdk-struts-html is not loaded, all entries are fine, and within Portal after successful deployment it gives an error (500 Server Listener Error) on viewing that portlet body.
    I want these issues to be resolved as soon as possible.
    Or if anybody knows about pdkstruts.jar and pdk-struts-html.tld with latest versions, plz do tell me the site-url to download these things.
    Plz help me out about these issues.
    Thanks in advance.

    Look in the Building Struts Portlets with Oracle Jdevelper section of the Oracle Application Server Portal Developers Guide. You need additional jar files besides the pdkstruts one. Also, look in the server logs to see more detailed messages about why it failed, it will help you debug.

  • Photoshop and Bridge rotating images automatically, unwanted behavior

    We have a large batch of identically sized images (although obviously some are portrait and some landscape) and when previewed in bridge or opened in photoshop, the images that are portrait are being automatically rotated 90 degrees counter-clockwise. In bridge, the extracted preview displays correctly but when the higher-res image preview is generated, it rotates the images counter-clockwise.
    This is happening on more than one of our machines, which makes me think it has something to do with the images themselves. The only thing I've found so far is that maybe the images contain meta-data that is telling the two programs to rotate the images, but this is unwanted behavior and if this is indeed what's going on, then I'd like to either tell photoshop/bridge to ignore this data or clear it out of the image files altogether.
    Any thoughts/ideas/solutions?

    Right, which is what I thought. If by "a conflict to the way you want it see it" you mean there are people are now standing on the wall, then yes, it is a conflict.
    So any help on how to clear this particular bit of meta data on a few thousand photos? Or do we just have to work around it?

  • PDK Struts tags

    When trying to use the PDK Struts tags in a portlet, I receive the following error message when the portlet has been deployed to a 10g portal:
    [ServletException in:/WEB-INF/jsp/tiles/portal/index.jsp] action'
    Even with debug mode enabled on the server, that's the only detail I get. My config is as follows:
    IN SERVER.XML
    <taglib>
    <taglib-uri>/WEB-INF/tld/pdk-struts-html.tld</taglib-uri> <taglib-location>/WEB-INF/tld/pdk-struts-html.tld</taglib-location>
    </taglib>
    IN THE TAGLIB INCLUDE
    <%@ taglib uri='/WEB-INF/tld/pdk-struts-html.tld' prefix='pdk' %>
    IN THE JSP:
    <pdk:link page="/servlet/letterView">Link text</pdk:link>
    VERIFIED:
    - The portlet works without the tag included.
    - It works using the standard Struts html:link tag, but of course generates the resulting page in it's own screen, outside of the portal container
    - The TLD is indeed in the location listed in the URI
    - The following two JARs are included in the LIB directory: pdkjava.jar, pdkstruts.jar
    - I removed all attributes from the tag and received a more detailed message (Cannot create rewrite URL: java.net.MalformedURLException: You must specify exactly one of "forward", "href", or "page"') so it seems like everything that needs to be in place is indeed in place -- it seems like I'm just misusing the tag.
    Any help would be appreciated. Thanks!

    The problem was an old copy of the struts.jar file, which was missing the calculateUrl() method called by the Oracle tag. With a new struts.jar file, all was good.

  • Pdk struts jsp tags not working.

    The problem we have hited is that pdk-struts tags are not rendered corectly:
    From next piece of code:
    <pdk-html:form action="/auth_portlet/doLogin.do" name="loginFormBean" type="passport_portlets.auth_portlet.loginFormBean">
    <%--<pdk-html:errors/>--%>
    <table width="100%" cellpadding="0" cellspacing="0" border="0">
    <tr>
        <td>Username:</td>
        <td><pdk-html:text property="username"/></td>
    </tr>
    <tr>
        <td>Password:</td>
        <td><pdk-html:text property="password"/></td>
    </tr>
    <tr>
        <td></td>
        <td><pdk-html:submit value="Login"/></td>
    </tr>
    </table>
    </pdk-html:form>We recieve next output in the browser window:
    <form name="loginFormBean" method="post" action="/passport_portlets/auth_portlet/doLogin.do">
    <table width="100%" cellpadding="0" cellspacing="0" border="0">
    <tr>
        <td>Username:</td>
        <td><input type="text" name="username" value=""></td>
    </tr>
    <tr>
        <td>Password:</td>
        <td><input type="text" name="password" value=""></td>
    </tr>
    <tr>
        <td></td>
        <td><input type="submit" value="Login"></td>
    </tr>
    </table>
    </form>But it's wrong output, there aren't any qualifiing naming prossed, as much as no hidden fields included into form. We don't receive any kind of errors, just such simple output in browser.

    to be more detailed and specific, source follows
    provider.xml
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <?providerDefinition version="3.1"?>
    <provider class="oracle.portal.provider.v2.DefaultProviderDefinition">
       <session>true</session>
       <passAllUrlParams>false</passAllUrlParams>
       <portlet class="oracle.portal.provider.v2.DefaultPortletDefinition">
          <id>1</id>
          <name>AuthPortlet</name>
          <title>portlet name</title>
          <description>description</description>
          <timeout>40</timeout>
          <showEditToPublic>false</showEditToPublic>
          <hasAbout>false</hasAbout>
          <showEdit>false</showEdit>
          <hasHelp>false</hasHelp>
          <showEditDefault>false</showEditDefault>
          <showDetails>false</showDetails>
          <renderer class="oracle.portal.provider.v2.render.RenderManager">
             <renderContainer>true</renderContainer>
             <renderCustomize>true</renderCustomize>
             <autoRedirect>true</autoRedirect>
             <contentType>text/html</contentType>
             <showPage class="oracle.portal.provider.v2.render.http.StrutsRenderer">
             <defaultAction>/auth_portlet/doDefault.do</defaultAction>
             </showPage>
          </renderer>
       </portlet>
    </provider>
    web.xml
    <?xml version = '1.0' encoding = 'UTF-8'?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
        <description>web.xml file for passport portlets package</description>
      <context-param>
        <param-name>oracle.portal.log.LogLevel</param-name>
        <param-value>4</param-value>
      </context-param>
      <servlet>
        <servlet-name>SOAPServlet</servlet-name>
        <servlet-class>oracle.webdb.provider.v2.adapter.SOAPServlet</servlet-class>
      </servlet>
      <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>SOAPServlet</servlet-name>
        <url-pattern>/providers</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>SOAPServlet</servlet-name>
        <url-pattern>/providers/*</url-pattern>
      </servlet-mapping>
      <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
      </servlet-mapping>
        <session-config>
            <session-timeout>35</session-timeout>
        </session-config>
        <mime-mapping>
            <extension>html</extension>
            <mime-type>text/html</mime-type>
        </mime-mapping>
        <mime-mapping>
            <extension>txt</extension>
            <mime-type>text/plain</mime-type>
        </mime-mapping>
    </web-app>
    struts-config.xml
    <?xml version="1.0" encoding="windows-1251" ?>
    <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
    <struts-config>
      <form-beans>
        <form-bean name="loginFormBean"
                   type="passport_portlets.auth_portlet.loginFormBean">
          <form-property name="username" type="java.lang.String"/>
          <form-property name="password" type="java.lang.String"/>
        </form-bean>
      </form-beans>
      <action-mappings>
        <action path="/auth_portlet/doDefault"
                type="passport_portlets.auth_portlet.doDefaultAction">
          <forward name="loged" path="/auth_portlet/showLoginState.jsp" redirect="true"/>
          <forward name="notloged" path="/auth_portlet/showLoginForm.jsp" redirect="true"/>
        </action>
        <action path="/auth_portlet/doLogin"
                type="passport_portlets.auth_portlet.doLoginAction"
                name="loginFormBean"
                scope="request"
                validate="true"
                input="/auth_portlet/showLoginForm.jsp">
          <forward name="success" path="/auth_portlet/showLoginState.jsp" redirect="true"/>
          <forward name="failure" path="/auth_portlet/showLoginForm.jsp" redirect="true"/>
        </action>
      </action-mappings>
      <message-resources parameter="passport_portlets.ApplicationResources"/>
    </struts-config>
    showLoginForm.jsp
    <%@ page contentType="text/html;charset=windows-1251"%>
    <%@ taglib uri="http://xmlns.oracle.com/portal/pdk/struts/tags-html" prefix="pdk" %>
    <pdk:xhtml/>
    <pdk:form action="/auth_portlet/doLogin.do" name="loginFormBean" type="passport_portlets.auth_portlet.loginFormBean" method="post">
    <table width="100%" cellpadding="0" cellspacing="0" border="0">
    <tr>
        <td>Username:</td>
        <td><pdk:text property="username"/></td>
    </tr>
    <tr>
        <td>Password:</td>
        <td><pdk:text property="password"/></td>
    </tr>
    <tr>
        <td></td>
        <td><pdk:submit value="Login"/></td>
    </tr>
    </table>
    </pdk:form>all works fine, except the problem that pdk-struts tags in jsp page aren't processed correctly, they output simple html output, which is not formated to inline rendering rules (qualified naming of fields, hidden fields with all values, etc).
    Maybe I'm missing something?

  • PDK Struts HTML API Listing

    Hi,
    Can you guide me in locating the PDK Struts HTML API listing, i am unable to find any documentation regarding these tags and how they can be used.
    Any pointers to some detailed documentation on these tags would be greatly
    appreciated!!
    Thanks,
    Srikarthik

    Srikarthik ,
    There is not a seperate doc for the Struts API. As far as I can tell, the basis of these tags are Struts 1.1. You can find documentation on Struts 1.1 at http://struts.apache.org//struts-doc-1.1/index.html . Please be aware that there apparently are some limitations compared to normal struts. According to metalink note #357760., the hidden and textareas values are lost on submit.
    Eric

  • PDK Struts Not calling StrutsAction

    Hello,
    I posted this question in portal-general forum and just now found out this specific forum.
    My PDK-struts implementation JSP doesn't seem to invoke the Struts-Action class at all after the submit button is clicked on the JSP Page. I just modified the JPDK-struts sample to call my specific action class. The only difference is I use local copy of pdk-struts.tld vs. the external uri used in the jsps of the sample. Any idea? Thanks.

    Hello,
    I posted this question in portal-general forum and just now found out this specific forum.
    My PDK-struts implementation JSP doesn't seem to invoke the Struts-Action class at all after the submit button is clicked on the JSP Page. I just modified the JPDK-struts sample to call my specific action class. The only difference is I use local copy of pdk-struts.tld vs. the external uri used in the jsps of the sample. Any idea? Thanks.

  • Inconsistent Form Behavior on Failed Struts Validation

    So I'm working on a strange bug regarding an Edit User form for an application, where some fields revert to their default and some fields do not.
    We have a form for editing users in our system, with most of the usual information inputted in text boxes (login, first name, last name, password, password confirmation). We also have three possible levels of 'admin' - none, admin, and superadmin. These are chosen via radio buttons. There are also a couple of checkboxes (like 'user is active'). Overall, it's a fairly simple form.
    When the form is submitted, we do struts validation. We've set up the validation via comment annotation in our Java code, like so:
         * @struts.validator type="minlength"
         *                   arg1value="${var:minlength}"
         * @struts.validator-var name="minlength" value="8"
         * @struts.validator type="maxlength"
         *                   arg2value="${var:maxlength}"
         * @struts.validator-var name="maxlength" value="50"
        public void setPassword1(String string) {
            password1 = string;
        }All of the fields in our form are set from user properties, so they're initialized by the values in the user object. For example, if we had user John Smith, an admin, with login 'jsmith,' we'd have the first name and last name fields initialized to John and Smith, and the radio buttons for Admin set to 'admin.' For reference, here's the EditUser.jsp code for the radio buttons, based off of the selectedAdminRole property:
    <div class="InputElement">
            <label for="selectedAdminRole"><bean:message key="userForm.adminType"/></label>
              <html:radio styleId="selectedAdminRole" property="selectedAdminRole" value="None"
                          disabled="${userForm.loggedInUser.admin and userForm.userId == userForm.loggedInUser.id}">None</html:radio>
              <html:radio property="selectedAdminRole" value="Admin"
                          disabled="${userForm.loggedInUser.admin and userForm.userId == userForm.loggedInUser.id}">Admin</html:radio>
              <c:if test="${userForm.loggedInUser.superAdmin}">
                  <html:radio property="selectedAdminRole" value="SuperAdmin">Super</html:radio>
              </c:if>
         </div>As you can see above, the struts validator requires passwords to be at least 8 characters long. So if the user tries to change their password to something with less than that, they'll fail validation and they'll end up back on the form with the validation errors in red at the top of the page. However, the form data that they've edited will be preserved. So if John had tried to change his first name to 'Fred,' he'd still see 'Fred' in the First Name text field, even though it wouldn't actually get saved to the user object until he submitted the form with no errors. This works with radio buttons too - if John had tried to set his admin status down to 'none' from 'admin,' the radio button 'none' would still be checked. Basically, it preserves all your progress on the form until you navigate away.
    Unfortunately, it does NOT do this when you create a new user. Creating a new user uses the same form, and since there's no user object to get the fields from, they all get initialized to blank - except for one of the checkboxes ('user is active') and the radio buttons for admin (starts with 'none' checked). Now, if the user fills out the form and hits submit, but fails the struts validation, it preserves all the form data in the text fields, but reverts the checkboxes and the radio buttons to their default state.
    This leads to the following problem: say I'm trying to create a new admin, Jane Smith. I fill out the whole form, check the 'admin' button, and then enter a four-letter password. I submit, and the form fails struts validation and throws me back to the page with an error message informing me that passwords need to be at least 8 characters. I look over the form again - the login field is still 'janesmith,' the first name field is still 'Jane,' the last name field is still 'Smith,' everything looks fine except I screwed up the password. I enter an 8 letter password and resubmit. Jane then logs in and complains that she's not an admin, because I didn't notice that the 'admin' button had reset itself to the default of 'none' when I failed validation.
    My question is, why does it reset the radio buttons and checkboxes - but not the text fields - on failed validation when a new user is being created, but resets nothing at all when an existing user is being edited? I'd like it to reset none of the information when a new user is being created, but I cannot figure out the reason for this inconsistent behavior.
    If anyone can help me figure out how to get this working so that nothing gets reset - or at least explain to me the reason for this inconsistent behavior - I would be very grateful. I will also try to provide any additional information I can if this isn't enough.

    So what you are saying is that radio and checkboxes don't retain their state when validation fails?
    Checkboxes are always troublesome because of their design. If not selected, they don't submit any value - so you have to specifically unset them.
    My first instinct would be to look at the formbean which you are populating from, and see what (if anything) modifies its values.
    - for originally loading the new user page is it an action or JSP? Does it apply any default values to the form?
    - check the "input" page you redirect to when validation fails. Is it an action or a JSP?
    - is the same form being uses on the newUser jsp and whatever action you are submitting it to?
    - is there a form reset() method?
    My theory is that the "input" page you are redirecting to when validation fails is an action, and it sets some values on the form prior to loading.
    But thats just a guess at this point. Its hard to debug this without a working example. Its been a while since I worked with struts, and never with annotations providing the validation.
    Suggestion for debugging: dump the contents of the form bean at strategic points in the process to see that the values are what you think they should be.
    - running the save action
    - just after validation
    - on the jsp page.
    Hope this helps some,
    evnafets

  • It is question on portlet pdk struts tags link

    hi:
    <td>
    <jsp:useBean id="rowEditSet" class="java.util.HashMap"/>
    <c:set target="${rowEditSet}" property="event" value="setCurrentRowWithKey"/>
    <c:set target="${rowEditSet}" property="Arg0" value="${Row.rowKeyStr}"/>
    <pdk-html:link action="/browseCustomers.do" name="rowEditSet">Select
    </pdk-html:link>
    result:
    Select
    dont use

    The problem was an old copy of the struts.jar file, which was missing the calculateUrl() method called by the Oracle tag. With a new struts.jar file, all was good.

  • Make an input form in pdk-struts

    Hi
    I have an application that uses ADF BC4J as model and jsp as view. One of the pages has an master/detail input from.
    I have installed struts-pdk and I can build and deploy simple text pages, which are visible as portlets in the portal. Linking between these pages, within the application also works.
    How can I make an input form(either using struts-pdk or something else!) in the portal???
    And how do I combine the input form to my existing ADF model???

    You need to start with a table in a sheet that has some columns with headers  Once you create a new tab you can then create an input form for the table. This is in Numbers for iOS, not Mac OS X.

  • How to use pdk-struts-html:link

    i have a portlet,
         <pdk-html:link href="/StartEhrpHrj.do?targetGroup=Hrj1030MInfDtlGroup">
                   xyz
    </pdk-html:link> </td>
    but no link,why

    Hi,
    It is not an issue with the tag. Look at the docs for the struts html:link tag; the pdk-html:link tag is intended to replace this tag and not the regular HTML anchor tag.
    Good luck,
    Hernando
    hjbconsulting at comcast dot net

  • PDK Struts Portal Version

    I understand that the Struts PDK is avaliable within version 9.0.4 and above of the JPDK, however, are there any Oracle Portal version limitations? In other words, does this only work with Oracle 10gAS Portal or will it also work with Oracle 9iAS Portal?
    Regards,
    Jack

    Yes, you can register your 9.0.4 Web providers with 9.0.2 Portal. You have to deploy your Web provider to OC4J 9.0.4, though.
    Also, the 9.0.4-specific PDK features will not work.
    Peter

  • PDK Struts and LookupDispatchAction

    Hi,
    is it possible to use struts actions which override the action LookupDispathAction (or MapepdDispatchAction) within a PDK portlet ?
    I have always the following error:
    2005-11-23 16:21:30,733 ERROR [AJPRequestHandler-ApplicationServerThread-7] ? (?:?) - Request[assignVisa] does not contain handler parameter named 'method'. This may be caused by whitespace in the label text.
    2005-11-23 16:21:30,733 ERROR [AJPRequestHandler-ApplicationServerThread-7] ? (?:?) - Request[assignVisa] does not contain handler parameter named 'method'. This may be caused by whitespace in the label text.
    2005-11-23 16:21:30,787 WARN [AJPRequestHandler-ApplicationServerThread-7] ? (?:?) - Unhandled Exception thrown: class javax.servlet.ServletException
    2005-11-23 16:21:30,787 WARN [AJPRequestHandler-ApplicationServerThread-7] ? (?:?) - Unhandled Exception thrown: class javax.servlet.ServletException
    If someone could give me the solution, it will be very cool:-)
    Thanks in advance
    Alexandre

    I'm having the same problem.
    the generated links look like this
    ".....strutsAction=doSomething.do%3Bjsessionid%3Dc0a80aeb231c737295d013f64b85809fd701df342857%3Fmethod%3DInclude "
    If you copy the link and change "%3Fmethod%3DInclude" to &method=Include" it works fine.
    So it looks like the link is not being correctly generated.
    Right now I'm testing other things like changing pages contentType and form enctype
    if you have a solution, please share!
    thanks.

  • Unwanted behavior: Action method being called several times

    Hello,
    I have a managed bean that calls a session ejb which itself does a search. The problem is that it is supposed to retrieve a resultset ONCE and the displayed behavior is that it never stop doing so. It fetches the resultset N TIMES.
    Here is the managed bean and the method to look at is the performSearch method:
    package arcoiris;
    import java.util.ArrayList;
    import java.util.List;
    import javax.faces.model.SelectItem;
    public class SearchManagedBean {
        //Collected from search form
        private String keyword;
        private String country;
        private Integer[] postcode;
        private boolean commentExists;
        private Integer rating;
        private boolean websiteExists;
        //Used to populate form
        private List<SelectItem> availableCountries;
        private List<SelectItem> availablePostcodes;
        private List<SelectItem> availableRatings;
        //Retrieved from ejb tier
        private List<EstablishmentLocal> retrievedEstablishments;
        //Service locator
        private arcoiris.ServiceLocator serviceLocator;
        //Constructor
        public SearchManagedBean() {
            System.out.println("within constructor SearchManagedBean");
        //Getters and setters
        public String getKeyword() {
            return keyword;
        public void setKeyword(String keyword) {
            this.keyword = keyword;
        public String getCountry() {
            return country;
        public void setCountry(String country) {
            this.country = country;
        public boolean isCommentExists() {
            return commentExists;
        public void setCommentExists(boolean commentExists) {
            this.commentExists = commentExists;
        public Integer getRating() {
            return rating;
        public void setRating(Integer rating) {
            this.rating = rating;
        public boolean isWebsiteExists() {
            return websiteExists;
        public void setWebsiteExists(boolean websiteExists) {
            this.websiteExists = websiteExists;
        public List<SelectItem> getAvailableCountries() {
            List<SelectItem> countries = new ArrayList<SelectItem>();
            SelectItem si_1 = new SelectItem();
            SelectItem si_2 = new SelectItem();
            SelectItem si_3 = new SelectItem();
            si_1.setValue("2");
            si_1.setLabel("ecuador");
            si_2.setValue("1");
            si_2.setLabel("colombia");
            si_3.setValue("3");
            si_3.setLabel("peru");
            countries.add(si_1);
            countries.add(si_2);
            countries.add(si_3);
            return countries;
        public void setAvailableCountries(List<SelectItem> countries) {
            this.availableCountries = availableCountries;
        public List<SelectItem> getAvailablePostcodes() {
            List<SelectItem> postcodes = new ArrayList<SelectItem>();
            SelectItem si_1 = new SelectItem();
            SelectItem si_2 = new SelectItem();
            SelectItem si_3 = new SelectItem();
            si_1.setValue(new Integer(75001));
            si_1.setLabel("75001");
            si_2.setValue(new Integer(75002));
            si_2.setLabel("75002");
            si_3.setValue(new Integer(75003));
            si_3.setLabel("75003");
            postcodes.add(si_1);
            postcodes.add(si_2);
            postcodes.add(si_3);
            return postcodes;
        public void setAvailablePostcodes(List<SelectItem> availablePostcodes) {
            this.availablePostcodes = availablePostcodes;
        public List<SelectItem> getAvailableRatings() {
            List<SelectItem> ratings = new ArrayList<SelectItem>();
            SelectItem si_1 = new SelectItem();
            SelectItem si_2 = new SelectItem();
            SelectItem si_3 = new SelectItem();
            si_1.setValue(new Integer(1));
            si_1.setLabel("1");
            si_2.setValue(new Integer(2));
            si_2.setLabel("2");
            si_3.setValue(new Integer(3));
            si_3.setLabel("3");
            ratings.add(si_1);
            ratings.add(si_2);
            ratings.add(si_3);
            return ratings;
        public void setAvailableRatings(List<SelectItem> availableRatings) {
            this.availableRatings = availableRatings;
        public Integer[] getPostcode() {
            return postcode;
        public void setPostcode(Integer[] postcode) {
            this.postcode = postcode;
        public List<EstablishmentLocal> getRetrievedEstablishments() {
            return retrievedEstablishments;
        public void setRetrievedEstablishments(List<EstablishmentLocal> retrievedEstablishments) {
            this.retrievedEstablishments = retrievedEstablishments;
        //Business methods
        public String performSearch(){
            System.out.println("performSearchManagedBean begin");
            SearchRequestDTO searchRequestDto = new SearchRequestDTO(this.keyword,this.country,this.postcode,this.commentExists,this.rating, this.websiteExists);
            System.out.println("java bean "+this.keyword+" "+this.country+" "+this.postcode+" "+this.commentExists+" "+this.rating+" "+this.websiteExists);
            SearchSessionLocal searchSession = lookupSearchSessionBean();
            List<EstablishmentLocal> retrievedEstablishments = searchSession.performSearch(searchRequestDto);
            this.setRetrievedEstablishments(retrievedEstablishments);
            System.out.println("performSearchManagedBean end");
            return "success";
        private arcoiris.ServiceLocator getServiceLocator() {
            if (serviceLocator == null) {
                serviceLocator = new arcoiris.ServiceLocator();
            return serviceLocator;
        private arcoiris.SearchSessionLocal lookupSearchSessionBean() {
            try {
                return ((arcoiris.SearchSessionLocalHome) getServiceLocator().getLocalHome("java:comp/env/ejb/SearchSessionBean")).create();
            } catch(javax.naming.NamingException ne) {
                java.util.logging.Logger.getLogger(getClass().getName()).log(java.util.logging.Level.SEVERE,"exception caught" ,ne);
                throw new RuntimeException(ne);
            } catch(javax.ejb.CreateException ce) {
                java.util.logging.Logger.getLogger(getClass().getName()).log(java.util.logging.Level.SEVERE,"exception caught" ,ce);
                throw new RuntimeException(ce);
    }Here is the object request passed:
    package arcoiris;
    import java.io.Serializable;
    public class SearchRequestDTO implements Serializable {
        private String keyword;
        private String country;
        private Integer[] postcode;
        private boolean commentExists;
        private Integer rating;
        private boolean websiteExists;
        public SearchRequestDTO() {
        public SearchRequestDTO(String keyword, String country, Integer[] postcode, boolean commmentExists, Integer rating, boolean websiteExists){
            this.keyword=keyword;
            this.country= country;
            this.postcode = postcode;
            this.commentExists = commentExists;
            this.rating = rating;
            this.websiteExists = websiteExists;
        public String getKeyword() {
            return keyword;
        public void setKeyword(String keyword) {
            this.keyword = keyword;
        public String getCountry() {
            return country;
        public void setCountry(String country) {
            this.country = country;
        public Integer[] getPostcode() {
            return postcode;
        public void setPostcode(Integer[] postcode) {
            this.postcode = postcode;
        public boolean isCommentExists() {
            return commentExists;
        public void setCommentExists(boolean commmentExists) {
            this.commentExists = commmentExists;
        public Integer getRating() {
            return rating;
        public void setRating(Integer rating) {
            this.rating = rating;
        public boolean isWebsiteExists() {
            return websiteExists;
        public void setWebsiteExists(boolean websiteExists) {
            this.websiteExists = websiteExists;
    }and here is the session ejb:
    package arcoiris;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;
    import javax.ejb.*;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    import javax.sql.DataSource;
    public class SearchSessionBean implements SessionBean, SearchSessionLocalBusiness {
        private SessionContext context;
        private arcoiris.ServiceLocator serviceLocator;
        // <editor-fold defaultstate="collapsed" desc="EJB infrastructure methods. Click the + sign on the left to edit the code.">
        // TODO Add code to acquire and use other enterprise resources (DataSource, JMS, enterprise bean, Web services)
        // TODO Add business methods or web service operations
         * @see javax.ejb.SessionBean#setSessionContext(javax.ejb.SessionContext)
        public void setSessionContext(SessionContext aContext) {
            context = aContext;
         * @see javax.ejb.SessionBean#ejbActivate()
        public void ejbActivate() {
         * @see javax.ejb.SessionBean#ejbPassivate()
        public void ejbPassivate() {
         * @see javax.ejb.SessionBean#ejbRemove()
        public void ejbRemove() {
        // </editor-fold>
         * See section 7.10.3 of the EJB 2.0 specification
         * See section 7.11.3 of the EJB 2.1 specification
        public void ejbCreate() {
            // TODO implement ejbCreate if necessary, acquire resources
            // This method has access to the JNDI context so resource aquisition
            // spanning all methods can be performed here such as home interfaces
            // and data sources.
        // Add business logic below. (Right-click in editor and choose
        // "EJB Methods > Add Business Method" or "Web Service > Add Operation")
        public List<EstablishmentLocal> performSearch(SearchRequestDTO searchRequestDto) {
            System.out.println("within performSearch");
            List<EstablishmentLocal> establishments = new ArrayList<EstablishmentLocal>();
            try {
                Context ctx = new InitialContext();
                DataSource ds = (DataSource)ctx.lookup("java:/guia");
                Connection con = ds.getConnection();
                Statement stm = con.createStatement();
                String query = buildQueryFromSearchRequestDTO(searchRequestDto);
                ResultSet rs = stm.executeQuery(query);
                int rowCount = 0;
                while(rs.next()){
                    rowCount = rowCount + 1;
                    System.out.println("while");
                    try {
                        EstablishmentLocal establishment = lookupEstablishmentBean().findByEstablishmentId(rs.getInt("establishment_id"));
                        establishments.add(establishment);
                        System.out.println("est name "+establishment.getEstablishmentName());
                    } catch (FinderException ex) {
                        ex.printStackTrace();
                    } catch (SQLException ex) {
                        ex.printStackTrace();
                System.out.println("rowCount = "+rowCount);
                rs.close();
                stm.close();
                con.close();
            catch (SearchRequestMalformedException ex){
                ex.printStackTrace();
            }catch (NamingException ex) {
                ex.printStackTrace();
            }catch (SQLException ex){
                ex.printStackTrace();
            //TODO implement performSearch
            return null;
        private String buildQueryFromSearchRequestDTO(SearchRequestDTO searchRequestDto) throws SearchRequestMalformedException {
            StringBuffer sb = new StringBuffer();
            //Head of the query
            sb.append("SELECT ");
            sb.append("e.establishment_id, ");
            sb.append("e.establishment_name, ");
            sb.append("avg(r.rating) as avg_rating ");
            sb.append("FROM ");
            sb.append("establishment e, ");
            sb.append("rating r, ");
            sb.append("comment com, ");
            sb.append("establishment_country ec, ");
            sb.append("country_ref cou ");
            sb.append("where ");
            sb.append("e.establishment_id=ec.establishment_id and ");
            sb.append("ec.country_id=cou.country_id and ");
            sb.append("e.establishment_id=com.establishment_id and ");
            sb.append("r.establishment_id=e.establishment_id and ");
            //Conditional parts of the query
            //If user wants comment to be present
            if(searchRequestDto.isCommentExists()){
                sb.append("e.establishment_id=com.establishment_id and ");
            //If user has typed in a keyword
            if(!searchRequestDto.getKeyword().equals("") && !searchRequestDto.getKeyword().equals(" ")&& searchRequestDto.getKeyword()!=null){
                sb.append("e.establishment_name like '%"+ searchRequestDto.getKeyword() +"%' and ");
            //If user has choosen a country
            if(searchRequestDto.getCountry()!=null && !searchRequestDto.getCountry().equals("") && !searchRequestDto.getCountry().equals(" ")&& searchRequestDto.getCountry()!=null){
                sb.append("ec.country_id = " + searchRequestDto.getCountry() + " and ");
            //If user wants website to be present
            if(searchRequestDto.isWebsiteExists()){
                sb.append("e.establishment_website is not null and ");
    /* conditions
    si utilisateur a renseign� un premier code postal "e.establishment_postcode = 'postcode_one' --si racine
            si autre code postal "or e.establishment_postcode = 'postcode_two'
            ainsi de suite
    and--vient de si racine
            //Tail of the query
            sb.append("0=0 ");
            sb.append("group by e.establishment_id ");
            //If the user wants a minimum rating
            if(searchRequestDto.getRating() != null && searchRequestDto.getRating().intValue()!=0){
                sb.append("having avg(r.rating) >= " + searchRequestDto.getRating());
            sb.append(" ");
            sb.append("order by e.establishment_id ");
            System.out.println("****************************");
            System.out.println(sb);
            System.out.println("****************************");
            return sb.toString();
        private arcoiris.ServiceLocator getServiceLocator() {
            if (serviceLocator == null) {
                serviceLocator = new arcoiris.ServiceLocator();
            return serviceLocator;
        private EstablishmentLocalHome lookupEstablishmentBean() {
            try {
                return (arcoiris.EstablishmentLocalHome) getServiceLocator().getLocalHome("java:comp/env/ejb/EstablishmentBean");
            } catch(javax.naming.NamingException ne) {
                java.util.logging.Logger.getLogger(getClass().getName()).log(java.util.logging.Level.SEVERE,"exception caught" ,ne);
                throw new RuntimeException(ne);
    }I just don't understand why it does so. The peformSearch should be executed ONCE only.
    Here is my face config file:
    <?xml version='1.0' encoding='UTF-8'?>
    <!DOCTYPE faces-config PUBLIC
      "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
      "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
    <faces-config>
        <managed-bean>
            <managed-bean-name>SearchManagedBean</managed-bean-name>
            <managed-bean-class>arcoiris.SearchManagedBean</managed-bean-class>
            <managed-bean-scope>request</managed-bean-scope>
        </managed-bean>
        <navigation-rule>
           <description></description>
            <from-view-id>/welcomeJSF.jsp</from-view-id>
            <navigation-case>
            <from-outcome>success</from-outcome>
            <to-view-id>index.jsp</to-view-id>
            </navigation-case>
        </navigation-rule>
    </faces-config>Can anyone help?
    Thanks in advance,
    Julien.

    Just reactivating my thread hoping someone will reply to it....
    Julien.

Maybe you are looking for

  • HT1937 iPhone 4 display "unable to load network list"

    Hi Guys, I have a iPhone 4 from Singapore and it was working perfectly fine. I came to US few days ago and get a SIM card from T-mobile. My phone can't seems to detect any network with the new SIM card. I went down to T-mobile and they replace a new

  • Portal 2 crashes since upgrade to ML

    I realise this isn't a gaming forum but I wonder if anyone can help. Since upgrading to ML (via a clean install) and installing Portal 2 via Steam, the game crashes when loading levels.  The game's main menu loads OK but crashes upon loading levels.

  • OT: How to create virtual site

    Hi there, I need to setup a virtual host for PHP (which is installed as http://localhost and works) on my Win XP SP2 machine. I need it to test some files of my web site which are root relative. Pictures that are site relative do not show because is

  • Default Mail To value in for apexir_EMAIL_TO and apexir_EMAIL_ADDRESS

    I am trying to set the default "To" email address in the Apex 4.0 interactive reports for Email Download and Subscriptions. I have added the following JavaScript code to the "JavaScript.Function and Global Variable Declaration" section of the page de

  • ....STP not saving changes....

    ...a few people have experienced this problem and as of yet i've not seen an answer. I imported some music from an old cassette into STP did some EQ changes to bring out lost clarity then saved the mix, but when i replayed the new mix none of the cha