I've just realized that my virtualbox install takes up 25 gigs, however, while checking out the filesystem in the VM, only 17gigs of space is used. It seems that virtualbox will not automatically free up this space, you have to do it manually, by issuing the following command:
VBoxManage modifyvdi <name of the .vdi file> compact
Here is the output:
modifyvdi NewHardDisk1.vdi compact
VirtualBox Command Line Management Interface Version 2.0.6
(C) 2005-2008 Sun Microsystems, Inc.
All rights reserved.
Shrinking '/media/sdb1/innotek/NewHardDisk1.vdi': 0%...........10%..........20%..........30%..........40%..........
50%..........60%..........70%..........80%..........90%..........100%
That's it, however, don't expect too much size reduction (it only freed up 700MB on a 25G hard disk...)
PS: actually to make it work, I had to create a symlink to the .vdi file in ~/.VirtualBox/VDI/, maybe you'll need this, too.
Update: In order to get a greater file size reduction, you need to zero all the space on the hard disk (the compacting algorithm works by eliminating all parts of the hard disk image which contain zeros. Some advice on doing this can be found here.
I'm Java software architect working with Java/Spring/Clojure. Here You'll find some useful snippets that I've come across. Feel free to comment or contact me in email ISTVAN [AT] ISTVANDEVAI [DOT] COM
2008. december 17., szerda
2008. november 30., vasárnap
Disappearing desktop icons in Ubuntu Hardy and Intrepid
Check two things:
- Start gconf-editor and search for the Apps ->Nautilus -> Preferences -> Show desktop key. Uncheck and check the checkbox a few times. If this does not help, proceed to step 2.
- Probably for some reason nautilus did not start properly. Press ALT+F2, type nautilus and press ENTER.
2008. október 30., csütörtök
1001 ways to serve static content for your java web application
Okay, not 1001. That was the marketing part :) But here you can find a few.
The problem originated from a job, where I had to handle uploading of user files.
The problem originated from a job, where I had to handle uploading of user files.
- Simply use the servlet container to serve up the content. This requires that the static content is at the top level of the WAR structure (or can be reached from there). Remember, anything inside WEB-INF won't be served as per the specification. There are two cons of this solution: one is that the content can be only located within the war, the second is that the user cannot upload new content (because of the WAR's read-only nature).
- You create a new context called let's say "/files" and point this context to the directory where the content is located (remember to create a dummy WEB-INF/web.xml too).
- You write a custom servlet to hand out the content. You have to be careful about server side caching, client side caching (http headers!) and proper checking of the servlet parameters, so your new servlet won't be a new way to display /etc/passwd remotely.
- You place a symlink within the unextracted WAR structure to the real directory, where content is stored.
- You configure the DefaultServlet of your container to serve up your content. This servlet is responsible for serving your static content inside the WAR, however, can be sometimes reconfigured to serve content from outside directories. Unfortunately this servlet is not standardized, which means your web.xml won't be cross-container.
- You let your http server (apache) serve static content, and only dynamic pages go to your servlet container. (Obviously this will only work if you've got a http server in front of the servlet container).
2008. augusztus 3., vasárnap
2008. június 10., kedd
Forcing awstats to ignore directories
Awstats is a pretty basic web statistics package, it displays nice graphs of the usage of your website.
However, sometimes you want to exclude certain parts of the site (for example, the awstats directory itself..) Here is how you do it.
Search for the respective config file of awstats in the /etc folder, and append this line at the end of the file:
This will make awstats skip every request starting with /awstats.
However, sometimes you want to exclude certain parts of the site (for example, the awstats directory itself..) Here is how you do it.
Search for the respective config file of awstats in the /etc folder, and append this line at the end of the file:
SkipFiles="REGEX[^\\/awstats]"
This will make awstats skip every request starting with /awstats.
2008. június 2., hétfő
Batch conversion of image files
Many times, I need to batch convert some files from one format into another. Usually this can be done with a nice one liner:
(converts all .jpg files into .bmp files in the current directory)
Note: you'll need imagemagick for this to work
for i in `ls *.jpg|awk -F. '{print $1}'`; do convert $i.jpg $i.bmp; done
(converts all .jpg files into .bmp files in the current directory)
Note: you'll need imagemagick for this to work
2008. május 27., kedd
DNS-313 troubles and a solution
I've bought a D-Link DNS-313 for backup purposes. This is a 1 disk network attached storage device, running embedded Linux. After unpacking the thing, inserting a HDD and turning it on, the installer refused to connect. I tried various installers without any success. After a couple of hours, I've decided to install everything manually.
Here is a list of things you need to do:
Here is a list of things you need to do:
- Read the DSMG600 forum.
- Mount the device using USB. And partition the drive according to this forum post.
- Install the embedded linux distro as described in this post.
- After that, you can boot the device in Ethernet mode, and log in using Telnet. This is a bit tricky though. You can login using name "admin" and an empty password. Or you can log in using "root" with the password "11111". In both cases however, you won't be given a login prompt. In order to get one, type: "5784468" and press enter.
- After all these, you still need to customize everything, set up samba properly, etc.
2008. május 25., vasárnap
NGI2008 in Krakow
I've recently been to Krakow to give a talk about some of our research and development at the NGI2008 conference. The conference was hosted by AGH University of Science and Technology which is a pretty large institution, having multiple campuses within Krakow.
After the conference, we've met in the city to do some sightseeing. What I've really liked in Krakow, was public transportation, which is cheap and pretty convenient.
It is also pretty easy to get around with a bicyle in town, though I had no chance to try it :(
A piece of polish technology:
The famous building on Market Square:
Krakow Castle:
The conference banquet:
Guess why was everyone so happy?
After the conference, we've met in the city to do some sightseeing. What I've really liked in Krakow, was public transportation, which is cheap and pretty convenient.
It is also pretty easy to get around with a bicyle in town, though I had no chance to try it :(
A piece of polish technology:
The famous building on Market Square:
Krakow Castle:
The conference banquet:
Guess why was everyone so happy?
2008. április 4., péntek
Troubleshooting JSF pages
Anyone who has tried JavaServer Faces development using the Sun Reference Implementation knows that trouble shooting can be a real pain. Many times rendering simply stops at a given point in the page, without any exception or error message. Here are some tips to get you started in troubleshooting your application.
- Keep in mind that any changes you make to faces-config.xml will take effect only if you restart(redeploy) your application.
- Check out the HTML generated. If you see that tags are not closed, or some tags are completely missing, try to remove some of the JSF code to see exactly which part causes the problem.
- Increase the JSF loglevel. This depends on the particular JSF implementation. If you are using the Sun RI, the following packages need to get their loglevel increased to level "FINE":
com.sun.faces.application com.sun.faces.el com.sun.faces.lifecycle
How you are doing this depends on the environment you are workin in. If you are using the Glassfish application server, go the the admin console, then "Application server", "Logging", "Loglevels". However, you can also set the loglevel of these packages programmatically, using Logger.getLogger(..).setLevel(..). If you are successful with either of these methods, you should see log messages like this:
parse(jndi:/server/TrainingLog-war/WEB-INF/faces-config.xml)
added converter of type 'javax.faces.Long' and class 'javax.faces.convert.LongConverter'
added converter of class type 'javax.faces.convert.LongConverter'
added converter of type 'javax.faces.Short' and class 'javax.faces.convert.ShortConverter'
added converter of class type 'javax.faces.convert.ShortConverter'
Unknown entity, deferring to superclass.
Unknown entity, deferring to superclass.
added converter of class type 'javax.faces.convert.BigDecimalConverter'
addManagedBean(SessionBean1)
addManagedBean(Login)
addManagedBean(ApplicationBean1)
addManagedBean(RequestBean1)
addManagedBean(ViewMyUsers)
addManagedBean(ViewMyTrainings)
addManagedBean(ViewMyParts)
addNavigationRule(/ViewMyUsers.jsp)
addNavigationRule(/Login.jsp)
addManagedBean(init)
addNavigationRule(/init.jsp)
Created Default Lifecycle
Defined editorClass class com.sun.faces.application.ConverterPropertyEditorFor_java_math_BigInteger
added converter of class type 'javax.faces.convert.BigIntegerConverter'
added converter of type 'javax.faces.BigDecimal' and class 'javax.faces.convert.BigDecimalConverter'
added converter of type 'javax.faces.BigInteger' and class 'javax.faces.convert.BigIntegerConverter'
getLifecycle: DEFAULT com.sun.faces.lifecycle.LifecycleImpl@b69761
addedLifecycle: com.sun.faces.lifecycle.PARTIAL com.sun.faces.extensions.avatar.lifecycle.PartialTraversalLifecycle@4e3bb0
getLifecycle: com.sun.faces.lifecycle.PARTIAL com.sun.faces.extensions.avatar.lifecycle.PartialTraversalLifecycle@4e3bb0
addPhaseListener(ANY 0,com.sun.faces.lifecycle.ELResolverInitPhaseListener@15a4e36
getLifecycle: DEFAULT com.sun.faces.lifecycle.LifecycleImpl@b69761
addPhaseListener(ANY 0,com.sun.faces.lifecycle.ELResolverInitPhaseListener@177dde7
added converter of type 'javax.faces.Boolean' and class 'javax.faces.convert.BooleanConverter'
Created ApplicationFactory
JSF1032: Resource injection ENABLED using InjectionProvider 'com.sun.faces.vendor.GlassFishInjectionProvider'.
Created Application instance
added converter of type 'javax.faces.Byte' and class 'javax.faces.convert.ByteConverter'
Created Application instance 'com.sun.faces.application.ApplicationImpl@191b687'
"JSF1016: Target class 'com.sun.faces.application.ActionListenerImpl' doesnt have an adapter constructor to accept '{1}', creating a new instance instead.
set ActionListener Instance to 'com.sun.faces.application.ActionListenerImpl'
set ActionListener Instance to 'com.sun.rave.web.ui.appbase.faces.ActionListenerImpl'
"JSF1016: Target class 'com.sun.faces.application.NavigationHandlerImpl' doesnt have an adapter constructor to accept '{1}', creating a new instance instead.
Created NavigationHandler instance
set NavigationHandler Instance to 'com.sun.faces.application.NavigationHandlerImpl'
added converter of type 'javax.faces.Character' and class 'javax.faces.convert.CharacterConverter'
added converter of type 'javax.faces.DateTime' and class 'javax.faces.convert.DateTimeConverter'
added converter of type 'javax.faces.Double' and class 'javax.faces.convert.DoubleConverter'
added converter of type 'javax.faces.Float' and class 'javax.faces.convert.FloatConverter'
added converter of type 'javax.faces.Integer' and class 'javax.faces.convert.IntegerConverter'
"JSF1016: Target class 'com.sun.webui.jsf.faces.DataProviderELResolver' doesnt have an adapter constructor to accept '{1}', creating a new instance instead.
added converter of type 'javax.faces.Long' and class 'javax.faces.convert.LongConverter'
added converter of type 'javax.faces.Number' and class 'javax.faces.convert.NumberConverter'
"JSF1016: Target class 'com.sun.webui.jsf.faces.ThemeELResolver' doesnt have an adapter constructor to accept '{1}', creating a new instance instead.
"JSF1016: Target class 'com.sun.faces.application.StateManagerImpl' doesnt have an adapter constructor to accept '{1}', creating a new instance instead.
set StateManager Instance to 'com.sun.faces.application.StateManagerImpl'
added converter of type 'javax.faces.Short' and class 'javax.faces.convert.ShortConverter'
Added managedBeanFactory com.sun.faces.config.ManagedBeanFactoryImpl@e76ee6 for CurrentUser
Added managedBeanFactory com.sun.faces.config.ManagedBeanFactoryImpl@137f1 for LoginPageBean
Added managedBeanFactory com.sun.faces.config.ManagedBeanFactoryImpl@bb1db8 for MenuBean
set StateManager Instance to 'com.sun.faces.extensions.avatar.application.DeferredStateManager'
"JSF1016: Target class 'com.sun.faces.application.ViewHandlerImpl' doesnt have an adapter constructor to accept '{1}', creating a new instance instead.
Created ViewHandler instance
Added managedBeanFactory com.sun.faces.config.ManagedBeanFactoryImpl@11c61fe for RegisterPageBean
set ViewHandler Instance to 'com.sun.faces.application.ViewHandlerImpl'
Added managedBeanFactory com.sun.faces.config.ManagedBeanFactoryImpl@baad4f for TransferListPageBean
Added managedBeanFactory com.sun.faces.config.ManagedBeanFactoryImpl@b9f79a for TransferPageBean
Added managedBeanFactory com.sun.faces.config.ManagedBeanFactoryImpl@149d4d for UserManagementPageBean
set ViewHandler Instance to 'com.sun.rave.web.ui.appbase.faces.ViewHandlerImpl'
added component of type 'com.sun.faces.AjaxZone' and class 'com.sun.faces.extensions.avatar.components.AjaxZone'
added component of type 'com.sun.faces.extensions.avatar.Scripts' and class 'com.sun.faces.extensions.avatar.components.ScriptsComponent'
added component of type 'com.sun.rave.faces.Encoding' and class 'com.sun.rave.faces.component.EncodingComponent'
<some stuff snipped>
added component of type 'javax.faces.ViewRoot' and class 'com.sun.faces.extensions.avatar.components.PartialTraversalViewRootImpl'
added converter of type 'javax.faces.Boolean' and class 'javax.faces.convert.BooleanConverter'
<some stuff snipped>
Added managedBeanFactory com.sun.faces.config.ManagedBeanFactoryImpl@13fe739 for ApplicationBean1
Added managedBeanFactory com.sun.faces.config.ManagedBeanFactoryImpl@13e8c11 for Login
Added managedBeanFactory com.sun.faces.config.ManagedBeanFactoryImpl@9e637e for RequestBean1
Added managedBeanFactory com.sun.faces.config.ManagedBeanFactoryImpl@1986321 for SessionBean1
Added managedBeanFactory com.sun.faces.config.ManagedBeanFactoryImpl@10f546e for ViewMyParts
Added managedBeanFactory com.sun.faces.config.ManagedBeanFactoryImpl@622bff for ViewMyTrainings
Added managedBeanFactory com.sun.faces.config.ManagedBeanFactoryImpl@b3ca83 for ViewMyUsers
Added managedBeanFactory com.sun.faces.config.ManagedBeanFactoryImpl@15c46da for init
Using client state buffer size of 4096
added validator of type 'javax.faces.DoubleRange' class 'javax.faces.validator.DoubleRangeValidator'
added validator of type 'javax.faces.Length' class 'javax.faces.validator.LengthValidator'
added validator of type 'javax.faces.LongRange' class 'javax.faces.validator.LongRangeValidator'
Completed initializing Sun's JavaServer Faces implementation (1.2_04-b20-p03) for context '/TrainingLog-war'
getLifecycle: com.sun.faces.lifecycle.PARTIAL com.sun.faces.extensions.avatar.lifecycle.PartialTraversalLifecycle@4e3bb0
SMGT0007: Self Management Rules service is enabled
Application server startup complete.
contextDestroyed()
CORE5022: All ejb(s) of [Micropayment-JSF] were unloaded successfully!
TopLink, version: Oracle TopLink Essentials - 2.0 (Build b58g-fcs (09/07/2007))
Server: unknown
file:/home/surfk/sun/Micropayment-JSF/dist/gfdeploy/Micropayment-JSF-ejb_jar/-Micropayment-JSF-ejbPU login successful
file:/home/surfk/sun/Micropayment-JSF/dist/gfdeploy/Micropayment-JSF-ejb_jar/-Micropayment-JSF-ejbPU logout successful
JDO76609: Got SQLException executing statement "CREATE TABLE USERS (ID BIGINT NOT NULL, PASSWORD VARCHAR(50), BALANCE FLOAT, REALNAME VARCHAR(255), USERROLE INTEGER, LOGIN VARCHAR(50), PRIMARY KEY (ID))": java.sql.SQLException: Table/View 'USERS' already exists in Schema 'APP'.
JDO76609: Got SQLException executing statement "CREATE TABLE TRANSFER (ID BIGINT NOT NULL, TRANSFERTIME TIMESTAMP, AMOUNT FLOAT, SENDER_ID BIGINT, RECIPIENT_ID BIGINT, PRIMARY KEY (ID))": java.sql.SQLException: Table/View 'TRANSFER' already exists in Schema 'APP'.
JDO76609: Got SQLException executing statement "ALTER TABLE TRANSFER ADD CONSTRAINT TRANSFERRCIPIENTID FOREIGN KEY (RECIPIENT_ID) REFERENCES USERS (ID)": java.sql.SQLException: Constraint 'TRANSFERRCIPIENTID' already exists in Schema 'APP'.
JDO76609: Got SQLException executing statement "ALTER TABLE TRANSFER ADD CONSTRAINT TRANSFER_SENDER_ID FOREIGN KEY (SENDER_ID) REFERENCES USERS (ID)": java.sql.SQLException: Constraint 'TRANSFER_SENDER_ID' already exists in Schema 'APP'.
JDO76609: Got SQLException executing statement "CREATE TABLE SEQUENCE (SEQ_NAME VARCHAR(50) NOT NULL, SEQ_COUNT DECIMAL, PRIMARY KEY (SEQ_NAME))": java.sql.SQLException: Table/View 'SEQUENCE' already exists in Schema 'APP'.
JDO76609: Got SQLException executing statement "INSERT INTO SEQUENCE(SEQ_NAME, SEQ_COUNT) values ('SEQ_GEN', 1)": java.sql.SQLIntegrityConstraintViolationException: The statement was aborted because it would have caused a duplicate key value in a unique or primary key constraint or unique index identified by 'SQL080109084126840' defined on 'SEQUENCE'.
deployed with moduleid = Micropayment-JSF
naming.bind
POARemoteRefFactory checking if SFSBVersionPolicy need to be added
EJBSCLookup:: sc.getEjbContainerAvailabilityEnabledFromConfig() ==> false
POARemoteRefFactory addSFSBVersionPolicy? false
POARemoteRefFactory checking if SFSBVersionPolicy need to be added
EJBSCLookup:: sc.getEjbContainerAvailabilityEnabledFromConfig() ==> false
POARemoteRefFactory addSFSBVersionPolicy? false
**RemoteBusinessJndiName: micropayment.ejb.manager.UserManagerRemote; remoteBusIntf: micropayment.ejb.manager.UserManagerRemote
naming.bind
POARemoteRefFactory checking if SFSBVersionPolicy need to be added
EJBSCLookup:: sc.getEjbContainerAvailabilityEnabledFromConfig() ==> false
POARemoteRefFactory addSFSBVersionPolicy? false
POARemoteRefFactory checking if SFSBVersionPolicy need to be added
EJBSCLookup:: sc.getEjbContainerAvailabilityEnabledFromConfig() ==> false
POARemoteRefFactory addSFSBVersionPolicy? false
**RemoteBusinessJndiName: micropayment.ejb.manager.TransferManagerRemote; remoteBusIntf: micropayment.ejb.manager.TransferManagerRemote
LDR5010: All ejb(s) of [Micropayment-JSF] loaded successfully!
JSF1021: [/Micropayment-JSF-war] Configuration option 'com.sun.faces.displayConfiguration' - DISABLED
<some stuff snipped>
'com.sun.faces.vendor.GlassFishInjectionProvider'
JSF1018: [/Micropayment-JSF-war] Configuration option 'com.sun.faces.responseBufferSize' set to '1024'
JSF1018: [/Micropayment-JSF-war] Configuration option 'com.sun.faces.clientStateWriteBufferSize' set to '8192'
Initializing Sun's JavaServer Faces implementation (1.2_04-b20-p03) for context '/Micropayment-JSF-war'
contextInitialized()
Attempting to configure Digester to perform document validation.
addRenderer(javax.faces.Command,javax.faces.Button)
<some stuff snipped>
parse(jndi:/server/Micropayment-JSF-war/WEB-INF/faces-config.xml)
Unknown entity, deferring to superclass.
Unknown entity, deferring to superclass.
addManagedBean(LoginPageBean)
addManagedBean(MenuBean)
addManagedBean(CurrentUser)
addManagedBean(RegisterPageBean)
addManagedBean(UserManagementPageBean)
addManagedBean(TransferPageBean)
addManagedBean(TransferListPageBean)
addNavigationRule(*)
addNavigationRule(/secure/owner/usermanagement.jsp)
addNavigationRule(/secure/regular/newtransfer.jsp)
Created Default Lifecycle
getLifecycle: DEFAULT com.sun.faces.lifecycle.LifecycleImpl@19081e1
addPhaseListener(ANY 0,com.sun.faces.lifecycle.ELResolverInitPhaseListener@184d505
Created ApplicationFactory
JSF1032: Resource injection ENABLED using InjectionProvider 'com.sun.faces.vendor.GlassFishInjectionProvider'.
Created Application instance
Created Application instance 'com.sun.faces.application.ApplicationImpl@a1ea7d'
"JSF1016: Target class 'com.sun.faces.application.ActionListenerImpl' doesnt have an adapter constructor to accept '{1}', creating a new instance instead.
set ActionListener Instance to 'com.sun.faces.application.ActionListenerImpl'
"JSF1016: Target class 'com.sun.faces.application.NavigationHandlerImpl' doesnt have an adapter constructor to accept '{1}', creating a new instance instead.
Created NavigationHandler instance
set NavigationHandler Instance to 'com.sun.faces.application.NavigationHandlerImpl'
"JSF1016: Target class 'com.sun.faces.application.StateManagerImpl' doesnt have an adapter constructor to accept '{1}', creating a new instance instead.
set StateManager Instance to 'com.sun.faces.application.StateManagerImpl'
"JSF1016: Target class 'com.sun.faces.application.ViewHandlerImpl' doesnt have an adapter constructor to accept '{1}', creating a new instance instead.
Created ViewHandler instance
set ViewHandler Instance to 'com.sun.faces.application.ViewHandlerImpl'
added component of type 'javax.faces.Column' and class 'javax.faces.component.UIColumn'
<some stuff snipped>
Added managedBeanFactory com.sun.faces.config.ManagedBeanFactoryImpl@17e1e5c for CurrentUser
Added managedBeanFactory com.sun.faces.config.ManagedBeanFactoryImpl@3e6a94 for LoginPageBean
Added managedBeanFactory com.sun.faces.config.ManagedBeanFactoryImpl@2146b2 for MenuBean
Added managedBeanFactory com.sun.faces.config.ManagedBeanFactoryImpl@1bde842 for RegisterPageBean
Added managedBeanFactory com.sun.faces.config.ManagedBeanFactoryImpl@19c30aa for TransferListPageBean
Added managedBeanFactory com.sun.faces.config.ManagedBeanFactoryImpl@1988946 for TransferPageBean
Added managedBeanFactory com.sun.faces.config.ManagedBeanFactoryImpl@1794a2d for UserManagementPageBean
Using client state buffer size of 4096
added validator of type 'javax.faces.DoubleRange' class 'javax.faces.validator.DoubleRangeValidator'
added validator of type 'javax.faces.Length' class 'javax.faces.validator.LengthValidator'
added validator of type 'javax.faces.LongRange' class 'javax.faces.validator.LongRangeValidator'
Completed initializing Sun's JavaServer Faces implementation (1.2_04-b20-p03) for context '/Micropayment-JSF-war'
getLifecycle: DEFAULT com.sun.faces.lifecycle.LifecycleImpl@19081e1
execute(com.sun.faces.context.FacesContextImpl@13cbbb1)
phase(RESTORE_VIEW 1,com.sun.faces.context.FacesContextImpl@13cbbb1)
JSF1028: [/Micropayment-JSF-war] The ELResolvers for JSF successfully registered with the JSP container.
Entering RestoreViewPhase
New request: creating a view for /login.jsp
Created component with component type of 'javax.faces.ViewRoot'
servletPath /faces
pathInfo /login.jsp
URL pattern of the FacesServlet executing the current request /faces
Created new view for /login.jsp
Locale for this view as determined by calculateLocale en_US
RenderKitId for this view as determined by calculateRenderKitId HTML_BASIC
Exiting RestoreViewPhase
TIMING: Exectution time for phase 'RESTORE_VIEW 1': 72
getLifecycle: DEFAULT com.sun.faces.lifecycle.LifecycleImpl@19081e1
removePhaseListener(ANY 0,com.sun.faces.lifecycle.ELResolverInitPhaseListener@184d505
Skipping rest of execute() because of a reload
render(com.sun.faces.context.FacesContextImpl@13cbbb1)
phase(RENDER_RESPONSE 6,com.sun.faces.context.FacesContextImpl@13cbbb1)
Entering RenderResponsePhase
About to render view /login.jsp
About to execute view /login.jsp
Before dispacthMessage to viewId /login.jsp
Created component with component type of 'javax.faces.HtmlOutputText'
Created component with component type of 'javax.faces.NamingContainer'
Created component with component type of 'javax.faces.HtmlForm'
Created bean MenuBean successfully
Created component with component type of 'javax.faces.HtmlDataTable'
Created component with component type of 'javax.faces.Column'
Created component with component type of 'javax.faces.HtmlCommandLink'
Created component with component type of 'javax.faces.HtmlOutputText'
Created component with component type of 'javax.faces.HtmlOutputText'
Created component with component type of 'javax.faces.HtmlForm'
Created component with component type of 'javax.faces.HtmlOutputText'
Created component with component type of 'javax.faces.HtmlInputText'
Created component with component type of 'javax.faces.HtmlOutputText'
Created component with component type of 'javax.faces.HtmlInputSecret'
Created component with component type of 'javax.faces.HtmlOutputText'
Created component with component type of 'javax.faces.HtmlMessages'
Created component with component type of 'javax.faces.HtmlOutputText'
Created component with component type of 'javax.faces.HtmlCommandButton'
Created component with component type of 'javax.faces.HtmlOutputText'
Created component with component type of 'javax.faces.HtmlOutputText'
After dispacthMessage to viewId /login.jsp
Completed building view for :
/login.jsp
About to render view /login.jsp
component.getValue() returned
<table>
<tr>
<td id="menucolumn">
Value to be rendered
<table>
<tr>
<td id="menucolumn">
<some HTML output snipped>
Begin creating serialized view for /login.jsp
End creating serialized view /login.jsp
Client State: total number of characters written: 2108
Exiting RenderResponsePhase
TIMING: Exectution time for phase 'RENDER_RESPONSE 6': 1489
execute(com.sun.faces.context.FacesContextImpl@1914c67)
phase(RESTORE_VIEW 1,com.sun.faces.context.FacesContextImpl@1914c67)
Entering RestoreViewPhase
servletPath /faces
pathInfo /login.jsp
URL pattern of the FacesServlet executing the current request /faces
Created bean MenuBean successfully
Postback: Restored view for /login.jsp
Exiting RestoreViewPhase
TIMING: Exectution time for phase 'RESTORE_VIEW 1': 27
phase(APPLY_REQUEST_VALUES 2,com.sun.faces.context.FacesContextImpl@1914c67)
Entering ApplyRequestValuesPhase
Set submitted value erger on component
new value after decodingerger
Set submitted value erg on component
new value after decodingerg
No decoding necessary since the component j_id_id49 is not an instance or a sub class of UIInput
This command resulted in form submission ActionEvent queued javax.faces.event.ActionEvent[ source=javax.faces.component.html.HtmlCommandButton@1d6fc09]
Exiting ApplyRequestValuesPhase
TIMING: Exectution time for phase 'APPLY_REQUEST_VALUES 2': 12
phase(PROCESS_VALIDATIONS 3,com.sun.faces.context.FacesContextImpl@1914c67)
Entering ProcessValidationsPhase
Created bean LoginPageBean successfully
No conversion necessary for ergerand converterType class java.lang.String while decoding component j_id_id35
No conversion necessary for ergand converterType class java.lang.String while decoding component j_id_id43
Exiting ProcessValidationsPhase
TIMING: Exectution time for phase 'PROCESS_VALIDATIONS 3': 18
phase(UPDATE_MODEL_VALUES 4,com.sun.faces.context.FacesContextImpl@1914c67)
Entering UpdateModelValuesPhase
TIMING: Exectution time for phase 'UPDATE_MODEL_VALUES 4': 2
phase(INVOKE_APPLICATION 5,com.sun.faces.context.FacesContextImpl@1914c67)
Entering InvokeApplicationsPhase
processAction(j_id_id54)
TopLink, version: Oracle TopLink Essentials - 2.0 (Build b58g-fcs (09/07/2007))
Server: unknown
file:/home/surfk/sun/Micropayment-JSF/dist/gfdeploy/Micropayment-JSF-ejb_jar/-Micropayment-JSF-ejbPU login successful
Adding Message[sourceId=<<NONE>>,summary=Bad username or password)
"JSF1013: Unable to find matching navigation case from view ID '/login.jsp' for outcome '' and action '#{LoginPageBean.loginAction}'
Exiting InvokeApplicationsPhase
TIMING: Exectution time for phase 'INVOKE_APPLICATION 5': 9512
render(com.sun.faces.context.FacesContextImpl@1914c67)
phase(RENDER_RESPONSE 6,com.sun.faces.context.FacesContextImpl@1914c67)
Entering RenderResponsePhase
About to render view /login.jsp
About to execute view /login.jsp
Before dispacthMessage to viewId /login.jsp
Created component with component type of 'javax.faces.HtmlOutputText'
Created component with component type of 'javax.faces.HtmlOutputText'
Created component with component type of 'javax.faces.HtmlOutputText'
Created component with component type of 'javax.faces.HtmlOutputText'
Created component with component type of 'javax.faces.HtmlOutputText'
Created component with component type of 'javax.faces.HtmlOutputText'
Created component with component type of 'javax.faces.HtmlOutputText'
Created component with component type of 'javax.faces.HtmlOutputText'
After dispacthMessage to viewId /login.jsp
Completed building view for :
/login.jsp
About to render view /login.jsp
component.getValue() returned
<table>
<tr>
<td id="menucolumn">
Value to be rendered
<table>
<tr>
<td id="menucolumn">
<some HTML output snipped>
Begin creating serialized view for /login.jsp
End creating serialized view /login.jsp
Client State: total number of characters written: 2112
Exiting RenderResponsePhase
TIMING: Exectution time for phase 'RENDER_RESPONSE 6': 101 - If you think that the problem you are having is somehow connected to the JSF lifecycle (eg. you are developing custom components, etc.), you can also write a custom debugger class based the on the PhaseListener interface. This is nicely detailed here.
- Study the JSF framework in detail. If you happen to be Hungarian, you can read the book I've co-authored: Software development on the Java EE platform.
Feliratkozás:
Bejegyzések (Atom)