Better documentation

1 view
Skip to first unread message

Greg

unread,
Apr 11, 2008, 1:31:34 AM4/11/08
to webical-developers
Need better/more explicit documentation .. the beginning installation
doc is a start, but for those who aren't intimately familiar with the
software already, it would be useful to know what some typical
settings are, descriptions of things, etc.

Zoran Kovacevic

unread,
Apr 11, 2008, 3:22:46 AM4/11/08
to webical-d...@googlegroups.com
Hi Greg,

Thanks for your feedback. I agree that documentation is minimal at this
point and focused on getting new users up and running with the install.
Basically there is just this page:
http://code.google.com/p/webical/wiki/HowToInstallWebical

Could you explain in more detail what is missing? Both from an install
perpspective and from a 'using Webical' perspective.
Perhaps we can do some Q&A on the list that can be the starting point
for user documentation. Shoot!

Best,
Zoran

--
Zoran Kovacevic
Func. Internet Integration
W http://www.func.nl
M +31 6 48104284
T +31 20 4230000
F +31 20 4223500
GPG http://www.func.nl/keys/z.kov...@func.nl-public.txt

Greg

unread,
Apr 11, 2008, 12:34:32 PM4/11/08
to webical-developers
Sure thing, here goes:

The HowToInstallWebical was informative and easy enough to complete.
Granted I'm just using default settings for now, I plan to try LDAP
authentication shortly.

But right before the document gets to "Troubleshooting", I felt there
was a whole section missing. So we've got it installed, we can get to
the configuration page, but what do we do at this point? Really the
only resource, as far as this goes, is the configuration page itself
with the form item names.

I'm not that familiar with java, so I was thrown off by the default
plugin work directory {java.io.tmpdir} ... I wasn't sure if the
directory paths needed were relative or specific to the tomcat server
or what. After some playing around, here's what I was able to figure
out for Mac OS X Server 10.5 (not sure if you want to save these for a
sample configuration document or something).

The plugin work path should be /Library/Tomcat/work ... it's a
preexisting folder that's writable by user/group
_appserver:_appserveradm

For the plugin path, I created a "plugin" folder in /Library/Tomcat/
webapps/webical (this was where tomcat unpacked the installation) ...
I changed ownership of the new folder to _appserver:_appserverusr

Now the confusing part for me that took some trial and error and re-
reading the instructions was that the CalDav plugin should remain
zipped up when I place it in the plugin folder. I was thinking it
needed to be unzipped, so it wasn't loading.

I still don't really know what resource paths are for, so I've left it
blank, and it has appeared to work okay.

....

With those settings I was able to get webical to successfully
initialize and take me to the calendars view. I had some difficulty
getting CalDav calendars to add, due to authentication issues with the
iCal Server on Leopard. The GUI Server Admin tool on Leopard shows
"digest", "kerberos", or "any" as it's authentication options. I had
it set to "any", but I think it really means to say "either" of the
two, not any method as the "basic" authentication that the webical/
caldav plugin was using continued to fail against it. In a stroke of
mental gymnastics, I opted to try the command line server
administration tool, and lo-and-behold there is a basic authentication
method that's not viewable in the GUI, and it's disabled by default.
The following turns it on (as root):

serveradmin settings calendar:Authentication:Basic:Enabled = yes

At this point, webical/caldav successfully added two caldav calendars
from my iCal Server.

I could see existing events, and edit existing events (changing dates/
times, names, descriptions, locations, etc). These changes were
properly reflected in the iCal desktop application, once I "refreshed"
the shared calendars.

However, adding new events in webical to these caldev calendars did
nothing at all. There were no error messages from webical once I
submitted the new events, yet even in webical, these new events did
not show up in it's calendar view.

I intended to further investigate this issue today, but it appears
another problem has appeared that's preventing me from going much
further.

The webical application fails to load in tomcat now. I've taken a
snapshot of the webical.log file and it goes as follows:

2008-04-11 11:30:26,280 INFO LocalSessionFactoryBean - Building new
Hibernate SessionFactory
2008-04-11 11:30:26,532 INFO DefaultSingletonBeanRegistry -
Destroying singletons in
{org.springframework.beans.factory.support.DefaultListableBeanFactory
defining beans
[wicketApplication,pluginSystemInitializer,pluginManifestReader,pluginCleanupApplicationListener,dataSource,sessionFactory,transactionManager,applicationSettingsManager,calendarManager,userManager,eventManager,encryptionManager,settingsManager,applicationSettingsDao,calendarDao,userDao,eventDaoWebDavHibernateBufferedImpl,settingsDao,daoFactory,applicationSettingsFactory,hibernateSessionAspect,sessionFactoryUtils];
root of BeanFactory hierarchy}

2008-04-11 11:30:26,535 ERROR ContextLoader - Context initialization
failed
org.springframework.beans.factory.BeanCreationException: Error
creating bean with name 'sessionFactory' defined in ServletContext
resource [/WEB-INF/applicationContext-release.xml]: Invocation of init
method failed; nested exception is org.hibernate.cache.CacheException:
net.sf.ehcache.CacheException: Cannot configure CacheManager: /Library/
Tomcat/work/Catalina/localhost/webical/loader/ehcache-failsafe.xml (No
such file or directory)
Caused by:
org.hibernate.cache.CacheException: net.sf.ehcache.CacheException:
Cannot configure CacheManager: /Library/Tomcat/work/Catalina/localhost/
webical/loader/ehcache-failsafe.xml (No such file or directory)
at org.hibernate.cache.EhCacheProvider.start(EhCacheProvider.java:
134)
at
org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:
173)
at
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:
1176)
at
org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:
807)
at
org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:
740)
at
org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:
131)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:
1062)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:
1029)
at
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:
420)
at org.springframework.beans.factory.support.AbstractBeanFactory
$1.getObject(AbstractBeanFactory.java:245)
at
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:
141)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:
242)
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:
156)
at
org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:
287)
at
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:
348)
at
org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.refresh(AbstractRefreshableWebApplicationContext.java:
156)
at
org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:
246)
at
org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:
184)
at
org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:
49)
at
org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:
3830)
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:
4337)
at
org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:
1237)
at
org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:
591)
at
org.apache.catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.java:
128)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:
290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:
206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
233)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
175)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:
525)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:
128)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:
102)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:
109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:
263)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:
844)
at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:
447)
at java.lang.Thread.run(Thread.java:613)
Caused by: net.sf.ehcache.CacheException: Cannot configure
CacheManager: /Library/Tomcat/work/Catalina/localhost/webical/loader/
ehcache-failsafe.xml (No such file or directory)
at net.sf.ehcache.CacheManager.configure(CacheManager.java:170)
at net.sf.ehcache.CacheManager.<init>(CacheManager.java:138)
at net.sf.ehcache.CacheManager.create(CacheManager.java:193)
at org.hibernate.cache.EhCacheProvider.start(EhCacheProvider.java:
130)
... 38 more


Looks like it's looking for a file called /Library/Tomcat/work/
Catalina/localhost/webical/loader/ehcache-failsafe.xml ... My
understanding is that this work directory is wiped clean periodically
(when restarting Tomcat), so shouldn't Tomcat be recreating this
stuff?


Greg

unread,
Apr 11, 2008, 12:41:10 PM4/11/08
to webical-developers
Re: file not found in the work directory...

Don't ask me how, but the webical folder in the work directory somehow
got it's owner changed to root whenever I restarted tomcat (as root).
Once I deleted the work/webical directory, tomcat was able to
successfully start the webical application.


Greg

unread,
Apr 11, 2008, 1:34:19 PM4/11/08
to webical-developers
So I've got webical/caldav up and running again, and I've been trying
to figure out why new events aren't being added to the calendar from
webical.

There are no new entries in the webical.log file when I add an event,
nor in any of the other Tomcat logs ... something is almost working,
however, given that the iCal Server log shows the following entries

192.168.0.2 - greg [11/Apr/2008:12:30:03 -0500] "PUT /calendars/users/
greg/b0026d7d-d9e3-4623-8aa4-3ce0560cb749.ics HTTP/1.1" 201 0 "-"
"Jakarta Commons-HttpClient/2.0.2" [243.2 ms]
192.168.0.2 - greg [11/Apr/2008:12:30:03 -0500] "REPORT /calendars/
users/greg/ HTTP/1.1" 207 904 "-" "Jakarta Commons-HttpClient/
2.0.2" [191.1 ms]
192.168.0.2 - greg [11/Apr/2008:12:30:03 -0500] "REPORT /calendars/
groups/family/ HTTP/1.1" 207 69 "-" "Jakarta Commons-HttpClient/
2.0.2" [144.7 ms]

So it looks like the caldav component is actually sending an update
back to the server, but my guess is that update never got the new
event added to it for some reason.

Greg

Ivo van Dongen

unread,
Apr 12, 2008, 2:20:42 PM4/12/08
to webical-developers
You're running into some strange errors indeed. I've switched over to
a mac for development recently so I hope to fish out these sorts of
mac specific issues as well.

Ivo

Ivo van Dongen

unread,
Apr 12, 2008, 2:24:21 PM4/12/08
to webical-developers
Hi Greg,

I've setup a version of the calendar server on my laptop (the open
source version) and used the default configuration. If I configure a
calendar in webical (url:http://localhost:8008/calendars/users/admin/
calendar/ user:admin pass:admin) I see events being added to the
calendar (you can check this in your browser with the same url).
Can you give me some more info on the calendar you've configured? What
is the url for example? And have you configured some specific access
rights or anything else out of the ordinary?

Regards,
Ivo
Reply all
Reply to author
Forward
0 new messages