January 13, 2012

XPages fileupload control and mime types

I have a problem uploading an image to a form field using the built in xpages fileuploader control. The form field the image is saved to is configured like explained in this blog post by Mats Knutsen: http://devxpages.blogspot.com/2011/03/display-picture-from-rich-text-field.html . I Also plan to display the image in an xpage using the template described in the blog post, like this (http://server/MyDatabase.nsf/viewunid/docunid/imageField/M2?OpenElement).

I know my fileuploader control points to the correct field in the form, since i can see the image in the document using the Lotus Notes Client after the document is created. However; the picture can not be viewed using "http://server/MyDatabase.nsf/viewunid/docunid/imageField/M2?OpenElement" at this point.

On the other hand, if I delete the field contents (the image) from the document field in the client, go back to the xpage with the fileuploader control, and uploads the image a second time, it works perfectly, and the image can be viewed using the url mentioned above.

This image shows my xpages fileupload control code:








This image displays the field properties of the field in the document the image is saved to the first time the fileuploader is used:















If I then delete the contents of the field in the picture above, and re-enters the document in the xpage, uploading the image once again using the file uploader, everything works fine, and i get the field properties of the document as displayed below:
















Does anyone know why my file uploader control does not work the first time i upload the image, but when I edit the document and upload the image a second time, everything seems to be ok?

October 26, 2011

err.PersistenceServiceResourceProvider error in logs

I keep getting these errors in the log:

26.10.2011 09:04:09 HTTP JVM: !err.PersistenceServiceResourceProvider.Errorwritingtopersistedcontenttor!. For more detailed information, please consult error-log-0.xml located in D:/IBM/Lotus/Domino/data/domino/workspace/logs
26.10.2011 09:04:09 HTTP JVM: !err.PersistenceServiceResourceProvider.Errorwritingtopersistedcontenttor!. For more detailed information, please consult error-log-0.xml located in D:/IBM/Lotus/Domino/data/domino/workspace/logs
26.10.2011 09:04:09 HTTP JVM: !err.PersistenceServiceResourceProvider.Errorwritingtopersistedcontenttor!. For more detailed information, please consult error-log-0.xml located in D:/IBM/Lotus/Domino/data/domino/workspace/logs

Does anyone have a clue what is causing them ? Detailed logs wont give me any more specifics..

October 4, 2011

HTTP JVM: CLFAD0134E: Exception processing XPage request

On our server we keep getting these "informal" errors.. When I consult the error logs they are equally "informal". Since there is quite a large number of XPages and bases, it is not trivial to start commenting out code etc to know where the error is occurring...
Does anybody know WHY,WHAT and WHERE this error occurs? Getting really frustrated with this now..


HTTP JVM: com.ibm.xsp.webapp.FacesServlet$ExtendedServletException: com.ibm.xsp.exception.EvaluationExceptionEx: Error while executing JavaScript computed expression
HTTP JVM: CLFAD0134E: Exception processing XPage request. For more detailed information, please consult error-log-0.xml located in D:/IBM/Lotus/Domino/data/domino/workspace/logs

FROM error-log-0:
View log here

September 21, 2011

Can't find resource for bundle java.util.PropertyResourceBundle

I have browsed google several times, but I cant find a solution to the problem. First I found some posts regarding Agents not having read/write access to .jar files but none of my agents are reading in the .jar files located in this base.

Im having problems with this error I keep on receiving:

Can't find resource for bundle java.util.PropertyResourceBundle, key connect_not_allowed Nested exception: Can't find resource for bundle java.util.PropertyResourceBundle, key connect_not_allowed org.dom4j.io.SAXReader.read(SAXReader.java:484)
org.dom4j.io.SAXReader.read(SAXReader.java:291)
com.eoffice.xml.RSSReader.getLimitedRSS(RSSReader.java:25)
sun.reflect.GeneratedMethodAccessor1026.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
java.lang.reflect.Method.invoke(Method.java:600)
com.ibm.jscript.types.JavaAccessObject.call(JavaAccessObject.java:321)
com.ibm.jscript.types.FBSObject.call(FBSObject.java:161)
com.ibm.jscript.ASTTree.ASTCall.interpret(ASTCall.java:175)
com.ibm.jscript.ASTTree.ASTReturn.interpret(ASTReturn.java:49)
com.ibm.jscript.std.FunctionObject._executeFunction(FunctionObject.java:261)
com.ibm.jscript.std.FunctionObject.executeFunction(FunctionObject.java:185)
com.ibm.jscript.std.FunctionObject.call(FunctionObject.java:171)
com.ibm.jscript.types.FBSObject.call(FBSObject.java:161)
com.ibm.jscript.ASTTree.ASTCall.interpret(ASTCall.java:175)
com.ibm.jscript.ASTTree.ASTReturn.interpret(ASTReturn.java:49)
com.ibm.jscript.ASTTree.ASTProgram.interpret(ASTProgram.java:119)
com.ibm.jscript.ASTTree.ASTProgram.interpretEx(ASTProgram.java:139)
com.ibm.jscript.JSExpression._interpretExpression(JSExpression.java:435)
com.ibm.jscript.JSExpression.access$1(JSExpression.java:424)
com.ibm.jscript.JSExpression$2.run(JSExpression.java:414)
java.security.AccessController.doPrivileged(AccessController.java:284)
com.ibm.jscript.JSExpression.interpretExpression(JSExpression.java:410)
com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:251)
com.ibm.jscript.JSExpression.evaluateValue(JSExpression.java:234)
com.ibm.xsp.javascript.JavaScriptInterpreter.interpret(JavaScriptInterpreter.java:220)
com.ibm.xsp.javascript.JavaScriptInterpreter.interpret(JavaScriptInterpreter.java:192)
com.ibm.xsp.binding.javascript.JavaScriptValueBinding.getValue(JavaScriptValueBinding.java:78)
javax.faces.component.UIOutput.getValue(UIOutput.java:159)
com.ibm.xsp.util.FacesUtil.convertValue(FacesUtil.java:1073)
com.ibm.xsp.renderkit.html_basic.OutputTextRenderer.encodeEnd(OutputTextRenderer.java:91)
com.ibm.xsp.renderkit.ReadOnlyAdapterRenderer.encodeEnd(ReadOnlyAdapterRenderer.java:153)
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:1005)
com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:809)
com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:804)
com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:804)
com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:804)
com.ibm.xsp.util.FacesUtil.renderComponent(FacesUtil.java:804)
com.ibm.xsp.component.UIViewRootEx._renderView(UIViewRootEx.java:1287)
com.ibm.xsp.component.UIViewRootEx.renderView(UIViewRootEx.java:1225)
com.ibm.xsp.application.ViewHandlerExImpl.doRender(ViewHandlerExImpl.java:635)
com.ibm.xsp.application.ViewHandlerExImpl._renderView(ViewHandlerExImpl.java:320)
com.ibm.xsp.application.ViewHandlerExImpl.renderView(ViewHandlerExImpl.java:355)
com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:103)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:210)
com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:120)
com.ibm.xsp.controller.FacesControllerImpl.render(FacesControllerImpl.java:264)
com.ibm.xsp.webapp.FacesServlet.serviceView(FacesServlet.java:197)
com.ibm.xsp.webapp.FacesServletEx.serviceView(FacesServletEx.java:193)
com.ibm.xsp.webapp.FacesServlet.service(FacesServlet.java:154)
com.ibm.xsp.webapp.FacesServletEx.service(FacesServletEx.java:137)
com.ibm.xsp.webapp.DesignerFacesServlet.service(DesignerFacesServlet.java:86)
com.ibm.designer.runtime.domino.adapter.ComponentModule.invokeServlet(ComponentModule.java:538)
com.ibm.domino.xsp.module.nsf.NSFComponentModule.invokeServlet(NSFComponentModule.java:1151)
com.ibm.designer.runtime.domino.adapter.ComponentModule$AdapterInvoker.invokeServlet(ComponentModule.java:803)
com.ibm.designer.runtime.domino.adapter.ComponentModule$ServletInvoker.doService(ComponentModule.java:758)
com.ibm.designer.runtime.domino.adapter.ComponentModule.doService(ComponentModule.java:527)
com.ibm.domino.xsp.module.nsf.NSFComponentModule.doService(NSFComponentModule.java:1135)
com.ibm.domino.xsp.module.nsf.NSFService.doServiceInternal(NSFService.java:523)
com.ibm.domino.xsp.module.nsf.NSFService.doService(NSFService.java:352)
com.ibm.designer.runtime.domino.adapter.LCDEnvironment.doService(LCDEnvironment.java:304)
com.ibm.designer.runtime.domino.adapter.LCDEnvironment.service(LCDEnvironment.java:261)
com.ibm.domino.xsp.bridge.http.engine.XspCmdManager.service(XspCmdManager.java:291)

July 6, 2011

SessionID parameter at end of URL

Sometimes links on my xpages gets the SessionID parameter appended at the end:
http://somepage.com/somebase.nsf/id/myWordDocument.doc?SessionID=CVX3WR

I read on this page some comments regarding the SessionID parameter.

Q. Sometimes when XPage is submitted it adds SessionID to the URL and some JavaScript stops working. What's that SessionID?

This is due to the way HTTP is working. HTTP is stateless so the browser must pass an ID to the server in order to keep a session open on the server. There are two ways for passing this ID.

1- Passing the ID as part of the URL
2 - Passing the ID as part of the cookie from the browser

The second way is the preferred way. But for the first page the XPages engine doesn't know if the browser that is connecting to the page is supporting cookies or not, so it tries first by passing an ID and a cookie. And on the second request it looks for the cookie, and if the cookie is there it removes the ID from the URL. So if you look at all the application servers they are all working like that. Now there is a property in XPages that says 'assume that the client has cookie', and in these cases do not use a session ID at all. So that would break some browsers that do not support having cookies enabled.


What im looking for is the 'assume that the client has cookie' property. Where is it located, or are there any other ways to turn off this SessionID ?