Andrej Koelewijn

3/21/2004

Getting started with JSF (on oc4j)

Filed under: — andrejk @ 2:54 pm

Step 1: Hello World!



  1. Download and unzip oc4j 10.0.3 release 2. Install oc4j as
    described in
    the readme.

  2. Download and unzip JSF 1.0.

  3. Create new java project called jsf-test-1. I used eclipse. In the
    project properties i specified that i wanted the java sources under src
    and the compiled classes in web/WEB-INF/classes.

  4. Create <PROJECT_HOME>web/WEB-INF/web.xml

    <web-app>
    <display-name>JSF test 1</display-name>

    <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup> 1 </load-on-startup>
    </servlet>

    <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.faces</url-pattern>
    </servlet-mapping>
    </web-app>


  5. Add the project path to
    <OC4J_HOME>/config/application.xml (replace the value for path
    with something relevant)

    <web-module id="jsf-test-1" path="../../../../../projects/jsf-test-1/web"/>


  6. Define the web application in
    <OC4J_HOME>/config/http-web-site.xml

      <web-app application="default" name="jsf-test-1" root="/jsf-test-1" development="true"/>


  7. Copy jsf libraries from <JSF_HOME>/lib into
    <PROJECT_HOME>/web/WEB-INF/lib


    1. jsf-api.jar

    2. jsf-impl.jar

    3. commons-beanutils.jar

    4. commons-collections.jar

    5. commons-digester.jar

    6. commons-logging.jar


  8. Create <PROJECT_HOME>/web/WEB-INF/faces-config.xml


  9. <faces-config>

    <application>
    <message-bundle>jsftest1.Messages</message-bundle>
    <locale-config>
    <default-locale>en</default-locale>
    </locale-config>
    </application>

    </faces-config>

  10. Create <PROJECT_HOME>/src/jsftest1/Messages.properties

    helloWorld=Hello World!


  11. Create <PROJECT_HOME>/web/index.jsp

  12. <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" >
    <
    @ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>

    <html>
    <body>

    <f:loadBundle basename="jsftest1.Messages" var="bundle"/>

    <f:view>

    <h:outputText value="#{bundle.helloWorld}" />

    </f:view>
    </body>
    </html>


Step 2: a registration form



  1. Add a link to a registration page in
    <PROJECT_HOME>/web/index.jsp

    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" >
    <
    @ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>

    <html>
    <body>

    <f:loadBundle basename="jsftest1.Messages" var="bundle"/>

    <f:view>

    <h1><h:outputText value="#{bundle.helloWorld}" /></h1>

    Welcome: <h:outputText value="#{registerBean.firstName}"/> <h:outputText value="#{registerBean.lastName}"/>
    <br/>
    <h:form id="indexForm">
    <h:commandLink id="link1" action="register">
    <h:outputText value="#{bundle.register}"/>
    </h:commandLink>
    </h:form>
    </f:view>
    </body>
    </html>


  2. Modify <PROJECT_HOME>/web/WEB-INF/faces-config.xml
    <faces-config>

    <application>
    <message-bundle>jsftest1.Messages</message-bundle>
    <locale-config>
    <default-locale>en</default-locale>
    </locale-config>
    </application>

    <managed-bean>
    <managed-bean-name>registerBean</managed-bean-name>
    <managed-bean-class>jsftest1.RegisterBean</managed-bean-class>
    <managed-bean-scope>session</managed-bean-scope>
    </managed-bean>

    <navigation-rule>
    <from-view-id>/register.jsp</from-view-id>
    <navigation-case>
    <from-outcome>success</from-outcome>
    <to-view-id>/index.jsp</to-view-id>
    </navigation-case>
    <navigation-case>
    <from-outcome>failure</from-outcome>
    <to-view-id>/register.jsp</to-view-id>
    </navigation-case>
    </navigation-rule>

    <navigation-rule>
    <from-view-id>/index.jsp</from-view-id>
    <navigation-case>
    <from-outcome>register</from-outcome>
    <to-view-id>/register.jsp</to-view-id>
    </navigation-case>
    </navigation-rule>

    </faces-config>


  3. Modify <PROJECT_HOME>/src/jsftest1/Messages.properties

    helloWorld=Hello World!
    register=Register
    firstName=First Name
    lastName=Last Name style="font-family: sans-serif;">


  4. Create
    <PROJECT_HOME>/web/register.jsp

    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" >
    <
    @ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>

    <html>
    <body>
    <f:loadBundle basename="jsftest1.Messages" var="bundle"/>

    <f:view>

    <h1><h:outputText value="#{bundle.register}" /></h1>
    <h:form id="registrationForm">
    <h:panelGrid columns="2">
    <h:outputLabel for="firstName">
    <h:outputText value="#{bundle.firstName}"/>
    </h:outputLabel>
    <h:inputText id="firstName" value="#{registerBean.firstName}" />

    <h:outputLabel for="lastName">
    <h:outputText value="#{bundle.lastName}"/>
    </h:outputLabel>
    <h:inputText id="lastName" value="#{registerBean.lastName}" />

    <h:commandButton action="#{registerBean.registerAction}" value="#{bundle.register}"/>
    </h:panelGrid>
    </h:form>
    </f:view>
    </body>
    </html>

    Note: due to a bug in JSF, we need to add the panelGrid tag, otherwise
    the
    outputLabel tag does not work.


  5. Create class RegisterBean:

    package jsftest1;

    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;

    /**
    * @author akoelewijn
    */
    public class RegisterBean {
    protected static final Log log = LogFactory.getLog(RegisterBean.class);
    String firstName = null;
    String lastName = null;
    /**
    * @return Returns the firstName.
    */
    public String getFirstName() {
    return firstName;
    }
    /**
    * @param firstName
    * The firstName to set.
    */
    public void setFirstName(String firstName) {
    this.firstName = firstName;
    }
    /**
    * @return Returns the lastName.
    */
    public String getLastName() {
    return lastName;
    }
    /**
    * @param lastName
    * The lastName to set.
    */
    public void setLastName(String lastName) {
    this.lastName = lastName;
    }
    public String registerAction() {
    log.info("registerAction");
    if (firstName != null && !firstName.equals("") && lastName != null
    && !lastName.equals("") ) {
    return "success";
    } else {
    return "failure";
    }
    }
    }



Step 3: simple validation



  1. JSF has some predefined tags to do simple validations. Modify
    register.jsp
     <h:form id="registrationForm">

    <h:panelGrid columns="3">
    <h:outputLabel for="firstName">
    <h:outputText value="#{bundle.firstName}"/>
    </h:outputLabel>
    <h:inputText id="firstName" value="#{registerBean.firstName}" >
    <f:validateLength minimum="1"/>
    </h:inputText>
    <h:message for="firstName"/>

    <h:outputLabel for="lastName">
    <h:outputText value="#{bundle.lastName}"/>
    </h:outputLabel>
    <h:inputText id="lastName" value="#{registerBean.lastName}" >
    <f:validateLength minimum="1"/>
    </h:inputText>
    <h:message for="lastName"/>

    <h:commandButton action="#{registerBean.registerAction}" value="#{bundle.register}"/>

    </h:panelGrid>
    </h:form>



Step 4:  custom validation



  1. Modify  <PROJECT_HOME>/web/WEB-INF/faces-config.xml

    ... 
    </application>

    <validator>
    <validator-id>registerValidator</validator-id>
    <validator-class>jsftest1.RegisterValidator</validator-class>
    </validator>

    <managed-bean>
    ...


  2. Add class RegisterValidation

    package jsftest1;
    import javax.faces.application.FacesMessage;
    import javax.faces.component.UIComponent;
    import javax.faces.context.FacesContext;
    import javax.faces.validator.Validator;
    import javax.faces.validator.ValidatorException;

    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;

    /**
    * @author akoelewijn
    */
    public class RegisterValidator implements Validator {
    protected static final Log log = LogFactory.getLog(RegisterValidator.class);
    public void validate(FacesContext _context, UIComponent _component,
    Object _value) throws ValidatorException {
    log.info("validate: " + _component.getId() + ", " + _value);
    if (_component.getId().equals("firstName")) {
    if (!_value.equals("andrej")) {
    throw new ValidatorException(new FacesMessage(
    "Incorrect value for first name"));
    }
    } else if (_component.getId().equals("lastName")) {
    if (!_value.equals("koelewijn")) {
    throw new ValidatorException(new FacesMessage(
    "Incorrect value for last name"));
    }
    }
    }
    }


  3. Modify <PROJECT_HOME>/web/register.jsp

    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" >
    <
    @ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>

    <html>
    <body>
    <f:loadBundle basename="jsftest1.Messages" var="bundle"/>

    <f:view>

    <h1><h:outputText value="#{bundle.register}" /></h1>
    <h:form id="registrationForm">

    <h:panelGrid columns="3">
    <h:outputLabel for="firstName">
    <h:outputText value="#{bundle.firstName}"/>
    </h:outputLabel>
    <h:inputText id="firstName" value="#{registerBean.firstName}" >
    <f:validateLength minimum="1"/>
    <f:validator validatorId="registerValidator"/>
    </h:inputText>
    <h:message for="firstName"/>

    <h:outputLabel for="lastName">
    <h:outputText value="#{bundle.lastName}"/>
    </h:outputLabel>
    <h:inputText id="lastName" value="#{registerBean.lastName}" >
    <f:validateLength minimum="1"/>
    <f:validator validatorId="registerValidator"/>
    </h:inputText>
    <h:message for="lastName"/>

    <h:commandButton action="#{registerBean.registerAction}" value="#{bundle.register}"/>

    </h:panelGrid>
    </h:form>
    </f:view>
    </body>
    </html>






25 Responses to “Getting started with JSF (on oc4j)”

  1. fletch Says:

    well that’s sure going to make web development easier. nice work on the example, though.

  2. Andrej Says:

    The first page of the JSF spec states that JSF is designed to be tooled, so whether or not web development will become easier depends on the tools, not on what you see above. But it’s always good to know what the tools are doing, so it helps to know the JSF tags.

  3. softskill Says:

    Thank for very informative examples.
    I had been looking for information on custom validation and yours was the easiest to digest.
    Good to see good contribution for a good technology

  4. twanna Price Says:

    Hello,

    I have been trying to get the jsf examples to run OC4J 10g Preview 2. I am getting error message java.lang.ClassCastException
    at _chooseLocal_2e_jsp._jspService(_chooseLocal_2e_jsp.java:51)
    SRC:/chooseLocale.jsp:50

    Line 50 of the file is f:loadBundle basename=”carstore.bundles.Resources” var=”bundle”

    I have also tryed the to run the helloWorld example. I get the following error message
    java.lang.NullPointerException
    at com.sun.faces.taglib.jsf_core.LoadBundleTag.doStartTag(LoadBundleTag.java:96)
    at _examples._jsp._jsf_2d_test_2d_1._index_2e_jsp._jspService(_index_2e_jsp.java:53)
    SRC:/examples/jsp/jsf-test-1/index.jsp:8

    Line 8 of the file is f:loadBundle basename=”jstest1.Messages” var=”bundle”

    Please Help!

  5. Andrej Says:

    According to jad (java decompiler) line 96 of LoadBundleTag contains the following statement:

    final ResourceBundle bundle = ResourceBundle.getBundle(basename, context.getViewRoot().getLocale(), Util.getCurrentLoader(this));

    Not sure what could cause the null pointer exception here. Which version of java are you using?

  6. ocampesato Says:

    Hello:

    I’m getting the same error message/line number,
    but with another application. I have this:
    +++++++++++++
    Windows/XP
    Tomcat5.0.18
    Java 1.4.2_03
    +++++++++++++

    Andrej, which version of Java did you use for
    the sample application?

    Regards,

    oswald

  7. ocampesato Says:

    Hello again:

    I had originally thought it was the JDK version, but it works with 1.4.2.03 and 1.4.2.04 after commenting out the following line (or the equivalent in the other person’s code):

    The file Messages.properties exists under $TC_HOMEwebappstestWEB-INFclassesbundle,
    but my sample application only works when I comment out the preceding line and modify the rest of the JSP. There’s obviously a mismatch between my JSP code and the location of the resource file….

    Regards,

    Oswald

  8. Andrej Says:

    So you can’t use a resource bundle, or do you need to put it somewhere else?

    I’m using 1.4.2_03 and oc4j 10.0.3r2.

  9. ocampesato Says:

    The answer turns out to be very simple:)

    Instead of using this

    http://localhost:8080/test/login.jsp

    I need to do this:

    http://localhost:8080/test/faces/login.jsp

    I searched the Web and found someone else who had a quasi-related error and the inclusion of
    ‘pages’ in the URL was the solution. It’s past 2AM right now so I’ll figure out later why this
    is necessary for the solution….

    Regards,

    Oswald

  10. ocampesato Says:

    Andrej:

    One last comment/question…Howard Ship, who is the creator of Tapestry, seems to really loathe JSF because it’s too complicated (compared to Tapestry). On the other hand, Sun/IBM/Oracle seem to be much in favour of JSF, and Oracle will support JSF in JDeveloper9i. Is Howard correct in his assessment?

    Regards,

    Oswald

  11. Andrej Says:

    Regarding the need for faces in the url, you’ve probably configured your web application to use the faces servlet when the faces string is detected in an url. Otherwise you’re directly executing the jsp, and the faces servlet doesn’t get a chance to make the bundle available to the page.

    The url i was calling is: http://localhost:8888/jsf-test-1/index.faces

    The faces servlet is executed upon detecting the .faces extension. I wasn’t directly calling the jsp page.

  12. Andrej Says:

    I’ve never looked at tapestry, so i can’t comment on it. I agree though that jsf is pretty complicated, although not much more than using struts.

    I downloaded sun’s java studio creator today. It has a visual editor for jsf pages. This hides most of the JSF complexity. I think that pretty soon most java tools will have support for jsf and then jsf will be easier than tapestry, as it’s not very likely that many tools will offer support for tapestry.

  13. ocampesato Says:

    Andrej:

    Yep, makes sense now:) I agree that support for JSF is likelier than Tapestry, which can be a significant factor for development.

    I’m downloading Java Studio Creator and will see what it offers. I’m also going to try your JSF example.

    btw: I think many Struts developers are still unsure/unconvinced that JSF will offer significant productivity gains over Struts, so an example illustrating this point would interest a lot of people.

    If the benefits of JSF arise primarily in large projects, then JSF risks being perceived as “just another framework”, and IMHO) many/most people will continue investing time and effort in Struts.

    Perhaps some examples of using JSF with XML/XSLT or Velocity would be interesing as well…

    Regards,

    Oswald

  14. Andrej Says:

    If you use jsf the same way you use struts now, than you won’t see a lot of productivity gains. The idea is that jsf provides better support for components. By using existing components you should be able to achieve better productivity. An example displaying how you can create and use components is next on my list, when i have the time… Right now i’m pretty busy using web services in jdeveloper 10g.

    I’ve used velocity and xml/xslt in the past, both for big web applications. I like velocity, i think for html generation xml/xslt is too complex. On my last project i’ve decided to use jsp’s eventhough i think velocity is easier. But it’s easier to find programmers that have experience with jsp’s, and there are more tools that support jsp’s.

  15. bioye Says:

    andrej,

    u say it is likely that support for jsf will be better than for tapestry. however, assume that tapestry as a framework is infact better than jsf. Why dont we all support the better framework and build tools on them? Why dont u take a look @ tapestry? Meanwhile, there is already an eclipse plugin for tapestry called spindle. Just as you guyz are checking out jsf and java studio creator, pls try out tapestry and spindle.

    thanx.

  16. yusuf levent Says:

    I would like to send my appreciations for the clear explanations, I think java.sun.com should learn from you how to explain

  17. jnc Says:

    Excellent Article.
    I found it vey useful.

  18. Louis Says:

    I come from ASP.NET bg and this has been an excellent quick intro to JSF. I wouldnt mind a few more j2ee type tutorials from you.

  19. Anonymous Says:

    good

  20. bookly Says:

    thx a lot!

  21. Sachin Says:

    Hi,
    I need to develop an Extended datatable component based on existing Sun JSF h:dataTable component.
    The following features are needed for table ( And may be all these should be configurable as well):
    1.Column Sorting
    2.Select All Checkbox Coulmn
    3.Pagination-It should display records range in a drop-down
    4. A button panel bar which would do ADD/EDIT/Delete/refersh etc..

    I am able to do all of these but not in a generic way. Like I have a seperate Button bar( made of htmlCommandButtons) and attached it with datatable’s datamodel. Similary , i have got pagination working but with using an seperate with logic inside backing bean. Select All checkbox as a coulmn in datatable.

    Can anybody suggest a design pattern for such component? How should all these pieces should be organised so that it will result in a single extended table component?

    Any suggestions greatly appreciated.

    Thanks in Advance.
    Sachin

    Mail ID: techie_techie@techie.com

  22. Sunil Says:

    Please reply the solution for Sachin’s message…

  23. Madhu Says:

    I am developing a simple JSF application which has
    1. a login page
    2. success page (in case login is successful)
    3. failure page (in case login fails)

    I am developing this application in OC4J environment. I wish to use the web-security for the same. Do we need to configure any additonal files/information in case
    A JSF web-application uses the J2EE web-security configured to a local file.

  24. Arvind Says:

    Good One, Thanks

  25. Israni Murli p Says:

    If i am adding the J2EE.jar in the WEB-INF/lib folder; them following error is comming; and if i am excluding this then ServletRequestListener (Class Not Exception is comming.)
    Plz. help on this issue.

    An unexpected exception has been detected in native code outside the VM.
    Unexpected Signal : EXCEPTION_ACCESS_VIOLATION (0xc0000005) occurred at PC=0×656E6E6F
    Function=[Unknown.]
    Library=(N/A)

    NOTE: We are unable to locate the function name symbol for the error

    just occurred. Please refer to release documentation for possible
    reason and solutions.

    Current Java thread:

    at java.lang.Class.getClassLoader0(Native Method)
    at java.lang.Class.getClassLoader(Class.java:516)
    at java.lang.Class.desiredAssertionStatus(Class.java:2063)
    at com.sun.faces.util.Util.(Util.java:86)
    at com.sun.faces.config.ConfigureListener.(ConfigureListener.java:277)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
    at java.lang.Class.newInstance0(Class.java:308)
    at java.lang.Class.newInstance(Class.java:261)
    at weblogic.servlet.internal.WebAppServletContext.registerEventListener(WebAppServletContext.java:2886)
    – locked (a weblogic.servlet.internal.WebAppServletContext)
    at weblogic.servlet.internal.WebAppHelper.parseAndRegisterListeners(WebAppHelper.java:394)
    at weblogic.servlet.internal.WebAppHelper.registerImplicitTagLibListeners(WebAppHelper.java:359)
    at weblogic.servlet.internal.WebAppServletContext.activateFromDescriptors(WebAppServletContext.java:2434)
    at weblogic.servlet.internal.WebAppServletContext.activate(WebAppServletContext.java:5904)
    at weblogic.servlet.internal.WebAppServletContext.setActive(WebAppServletContext.java:5882)
    at weblogic.servlet.internal.WebAppModule.activate(WebAppModule.java:834)
    at weblogic.j2ee.J2EEApplicationContainer.activateModule(J2EEApplicationContainer.java:3315)
    at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2194)
    at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2167)
    at weblogic.j2ee.J2EEApplicationContainer.activate(J2EEApplicationContainer.java:2115)
    at weblogic.management.deploy.slave.SlaveDeployer$Application.setActivation(SlaveDeployer.java:3082)
    at weblogic.management.deploy.slave.SlaveDeployer.setActivationStateForAllApplications(SlaveDeployer.java:1751)
    at weblogic.management.deploy.slave.SlaveDeployer.resume(SlaveDeployer.java:359)
    at weblogic.management.deploy.DeploymentManagerServerLifeCycleImpl.resume(DeploymentManagerServerLifeCycleImpl.java:229)
    at weblogic.t3.srvr.SubsystemManager.resume(SubsystemManager.java:131)
    at weblogic.t3.srvr.T3Srvr.resume(T3Srvr.java:966)
    at weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:361)
    at weblogic.Server.main(Server.java:32)

    Dynamic libraries:
    0×00400000 – 0×0040B000 D:BeaJDK142~1binjava.exe
    0×77F80000 – 0×77FFC000 C:WINNTsystem32ntdll.dll
    0×7C2D0000 – 0×7C335000 C:WINNTsystem32ADVAPI32.dll
    0×7C570000 – 0×7C624000 C:WINNTsystem32KERNEL32.dll
    0×77D30000 – 0×77D9F000 C:WINNTsystem32RPCRT4.dll
    0×78000000 – 0×78045000 C:WINNTsystem32MSVCRT.dll
    0×75030000 – 0×75044000 C:WINNTsystem32WS2_32.DLL
    0×75020000 – 0×75028000 C:WINNTsystem32WS2HELP.DLL
    0×08000000 – 0×08139000 D:BeaJDK142~1jrebinclientjvm.dll
    0×77E10000 – 0×77E79000 C:WINNTsystem32USER32.dll
    0×77F40000 – 0×77F7C000 C:WINNTsystem32GDI32.dll
    0×77570000 – 0×775A0000 C:WINNTsystem32WINMM.dll
    0×10000000 – 0×10007000 D:BeaJDK142~1jrebinhpi.dll
    0×007C0000 – 0×007CE000 D:BeaJDK142~1jrebinverify.dll
    0×007D0000 – 0×007E9000 D:BeaJDK142~1jrebinjava.dll
    0×007F0000 – 0×007FD000 D:BeaJDK142~1jrebinzip.dll
    0×253A0000 – 0×253AF000 D:Beajdk142_05jrebinnet.dll
    0×782C0000 – 0×782CC000 C:WINNTSystem32rnr20.dll
    0×77980000 – 0×779A4000 C:WINNTsystem32DNSAPI.DLL
    0×75050000 – 0×75058000 C:WINNTsystem32WSOCK32.dll
    0×77340000 – 0×77353000 C:WINNTsystem32iphlpapi.dll
    0×77520000 – 0×77525000 C:WINNTsystem32ICMP.dll
    0×77320000 – 0×77337000 C:WINNTsystem32MPRAPI.dll
    0×75150000 – 0×75160000 C:WINNTsystem32SAMLIB.DLL
    0×7CDC0000 – 0×7CE10000 C:WINNTsystem32NETAPI32.DLL
    0×7C340000 – 0×7C34F000 C:WINNTsystem32Secur32.dll
    0×77BF0000 – 0×77C01000 C:WINNTsystem32NTDSAPI.dll
    0×77950000 – 0×7797B000 C:WINNTsystem32WLDAP32.DLL
    0×751C0000 – 0×751C6000 C:WINNTsystem32NETRAP.dll
    0×7CE20000 – 0×7CF0F000 C:WINNTsystem32OLE32.DLL
    0×779B0000 – 0×77A4B000 C:WINNTsystem32OLEAUT32.DLL
    0×773B0000 – 0×773DF000 C:WINNTsystem32ACTIVEDS.DLL
    0×77380000 – 0×773A3000 C:WINNTsystem32ADSLDPC.DLL
    0×77830000 – 0×7783E000 C:WINNTsystem32RTUTILS.DLL
    0×77880000 – 0×7790E000 C:WINNTsystem32SETUPAPI.DLL
    0×7C0F0000 – 0×7C154000 C:WINNTsystem32USERENV.DLL
    0×774E0000 – 0×77514000 C:WINNTsystem32RASAPI32.dll
    0×774C0000 – 0×774D1000 C:WINNTsystem32rasman.dll
    0×77530000 – 0×77552000 C:WINNTsystem32TAPI32.dll
    0×71710000 – 0×71794000 C:WINNTsystem32COMCTL32.DLL
    0×70A70000 – 0×70AD6000 C:WINNTsystem32SHLWAPI.DLL
    0×77360000 – 0×77379000 C:WINNTsystem32DHCPCSVC.DLL
    0×777E0000 – 0×777E8000 C:WINNTSystem32winrnr.dll
    0×777F0000 – 0×777F5000 C:WINNTsystem32rasadhlp.dll
    0×25EA0000 – 0×25EA8000 D:Beajdk142_05jrebinnio.dll
    0×25F70000 – 0×25F76000 D:Beajdk142_05jrebinioser12.dll
    0×74FD0000 – 0×74FEE000 C:WINNTsystem32msafd.dll
    0×75010000 – 0×75017000 C:WINNTSystem32wshtcpip.dll
    0×77920000 – 0×77943000 C:WINNTsystem32imagehlp.dll
    0×72A00000 – 0×72A2D000 C:WINNTsystem32DBGHELP.dll
    0×690A0000 – 0×690AB000 C:WINNTsystem32PSAPI.DLL

    Heap at VM Abort:
    Heap

    def new generation total 2304K, used 2072K [0×10010000, 0×10290000, 0×10f70000)
    eden space 2048K, 88% used [0×10010000, 0×101d6038, 0×10210000)
    from space 256K, 100% used [0×10250000, 0×10290000, 0×10290000)
    to space 256K, 0% used [0×10210000, 0×10210000, 0×10250000)
    tenured generation total 30272K, used 11334K [0×10f70000, 0×12d00000, 0×1c810000)
    the space 30272K, 37% used [0×10f70000, 0×11a81878, 0×11a81a00, 0×12d00000)
    compacting perm gen total 18176K, used 18140K [0×1c810000, 0×1d9d0000, 0×24810000)
    the space 18176K, 99% used

Leave a Reply

Powered by WordPress