Update your development environment zk7 branch
- These are summarised FAQs of issues written by Hiep LQ directed more to developers.
- With the present Plan for release(s) we have just switched to zk7 branch.
You may read further at the comment section of IDEMPIERE-2245
Main point
1. To materialize zk7 we must update something:
- Eclipse 4.4.1 (luna sp1)
- buckminster-plugin of eclipse to 4.4 (http://download.eclipse.org/tools/buckminster/updates-4.4)
- in case you use old workspace, please delete subfolders of folder contain source you get from bitbucket. include .metadata, targetPlatform, RemoteSystemsTempFiles
2. Mix environment: before, you can use one workspace to development for all branch (development, release 2.0, release 2.1) just materialize one time and switch branch when you need.
At the moment, you can't do this with zk7 branch, you must repeat materialize with a clean workspace.
remain old workspace and again materialize to switch to zk7 branch is impossible. i didn't test for downgrade
Known Issues
1. error relate to zk library
- reason: at a slow, not stable network, we maybe encounter error relate to download lib for zk library.
- solution:
- open files org.zkoss.zk.library/copyjars.xml and org.zkoss.zk.library/copysources.xml
- manual download file following the links
- instead of manual download you can try also to right-click on the xml file and run as an ant task
- move the files to correct folder as at destination properties
re-materializefollow new method for faster
2. If you have a customized theme as Add_your_theme and it doesn't work after update to zk7
- Reason: we changed from Tomcat to Jetty which caused a difference when loading fragment plug-in resources (see this bug).
- Solution: edit MANIFEST.MF of the theme project and add:
Jetty-WarFragmentFolderPath: /
refer:jetty osgi
3. you use new eclipse to run buckminster action and encounter error. now it in core, not need do it.
- reason: new buckminster need some configuration value to correct run. (but buckminster headless not need. because version is a bit difference)
- solution:
- open adempiere.cquery
- add line
<cq:property key="osgi.configuration.area.default" value="configuration"/> <cq:property key="osgi.user.area" value="${user.home}"/> <cq:property key="osgi.user.area.default" value="${user.home}"/>
4. run idempiere server and see many error at console (has error "Too many open files", just check in ubuntu)
- reason: by feature of jetty
- solution:
add below line to file /etc/security/limits.conf * hard nofile 500000 * soft nofile 500000 root hard nofile 500000 root soft nofile 500000
5. just use localhost or 127.0.0.1 to access webui
- reason: before "application server" parameter when run setup server is use for swing client
but at the moment it use to set for <Set name="host"><Property name="jetty.host" default="localhost" />
what address you set when run setup will use to access webui.
- solution: not need change. just remember rule. or set 0.0.0.0
6. where're you can change jetty config?
- for all time build, you will change template config. it's at "[idempiere-home]/org.adempiere.server-feature/jettyhome/etc"
- for on time, you can change at "[idempiere-home]/jettyhome/etc", content of file at this folder is reset each time you run setup server
- for free change, read document of jetty jetty configuration
8. java.lang.NoClassDefFoundError: org/springframework/core/io/Resource.
- when open a jasper report encounter error: java.lang.NoClassDefFoundError: org/springframework/core/io/Resource
- reason: has plug-in user SpringExtensionsRegistryFactory, in my case it's font project.
- solution: change to SimpleFontExtensionsRegistryFactory
9. install gzip
- how to install gzip: http://www.eclipse.org/jetty/documentation/9.2.1.v20140609/gzip-filter.html
- how to resolve warning: SEVERE: AtmosphereFramework exception
java.lang.IllegalStateException: !asyncSupported at org.eclipse.jetty.server.Request.startAsync(Request.java:2074)
10. sometime i encounter below exception (windown, linux mint, run by eclipse or even run by build)
15:43:22.916-----------> ServletHandler.doHandle: /webui/zkau/web/764d6acc/js/zul.lang.wpd [41] java.lang.IllegalStateException: zip file closed at java.util.zip.ZipFile.ensureOpen(Unknown Source) at java.util.zip.ZipFile.access$200(Unknown Source) at java.util.zip.ZipFile$ZipEntryIterator.hasNext(Unknown Source) at java.util.zip.ZipFile$ZipEntryIterator.hasMoreElements(Unknown Source) at java.util.jar.JarFile$JarEntryIterator.hasNext(Unknown Source) at java.util.jar.JarFile$JarEntryIterator.hasMoreElements(Unknown Source) at org.eclipse.jetty.util.resource.JarFileResource.exists(JarFileResource.java:191) at org.eclipse.jetty.webapp.WebAppContext$Context.getResource(WebAppContext.java:1460) at org.zkoss.web.util.resource.ServletContextLocator.getResource0(ServletContextLocator.java:154)
I see a discus at http://stackoverflow.com/questions/19123887/jetty-java-lang-illegalstateexception-zip-file-closed
not yet test it.
get more info with materialize
- anytime you has issue with materialize process. read log to find reason. and try resolve by your self and update it at there
when default log is dummy info, try increase level of log by change setting:
in eclipse open: window/preferences + buckminster/console log level => debug + eclipse log level => debug + ant log level => debug after run materialize, read log at [idempiere-home]/.metadata/.bak_[n].log, [idempiere-home]/.metadata/.log
delete folder [idempiere-home]/.metadata, [idempiere-home]/targetPlatform, [idempiere-home]/RemoteSystemsTempFiles each time you re-run materialize after un-success