[IPT] Running IPT under Mac OS X Server 10.6.8

Burke Chih-Jen Ko (GBIF) bko at gbif.org
Mon Jan 30 18:21:40 CET 2012


Hi Milko,

So far as I know, the Server Admin only rewrites those settings that have relevant UI switches and forms, so if you try edit a configuration file in /etc/apache2/sites, and add:

	ProxyPass /ipt ajp://localhost:8009/ipt retry=5
	ProxyPassReverse /ipt ajp://localhost:8009/ipt

together with other system default proxies (	ProxyPass /calendars http://127.0.0.1:8008/calendars retry=5),

With the setting above I can run IPT via http://somedomain.org/ipt

It would be a different story if you want to run on URL like http://ipt.somedomain.org/.

Cheers,

Burke


On Jan 27, 2012, at 11:12 AM, Skofic A. Milko (Bioversity - HQ) wrote:

> I managed to enable the proxy, but with a different twist.
> On Mac OS X server there is a application that is used to administer the server, if you modify directly the apache files it could be that the changes will be overwritten next time you use the Server Admin application, so either you know which files to change or you do it in the application.
> I chose to do it with the application, so after some googling I found a solution that worked for me; note that I have no clue how to configure proxies on Apache, so it must have been out of luck :-)
> 
> In Server Admin:
> 
> open the Web option
> either create or select the site that clients are going to access (in other words the one most likely on port 80)
> in the General pane set the host and port, the rest can stay as it is
> the Options, Realms, Logging, Security and Aliases panes are not relevant to the reverse proxy, so they can stay as is
> in the Proxy pane:
> Enable Enable Reverse Proxy checkbox
> In the Proxy Path leave the entry as is (should be /)
> Leave the Sticky Session Identifier empty
> Create an entry in the Balancer Members list by clicking the + button:
> Put the url by which you access the IPT site under Tomcat (for instance http://127.0.0.1:8080/ipt/ )
> Leave the Route and the Load Factor fields empty.
> 
> Save your changes and it should work, at least it did for me.
> 
> I originally got the inspiration for this at https://discussions.apple.com/thread/2367041?start=0&tstart=0
> 
> Hope this helps others... 
> 
> 
> Milko A. Škofič
> Programme Specialist, Biodiversity Informatics Project
> Understanding and Managing Biodiversity Programme
> Bioversity International - Via dei Tre Denari, 472/a - 00057 Maccarese (RM) - ITALY
> E-mail: m.skofic at cgiar.org
> Tel: +39 06 6118286
> Fax: +39 06 61979661
> 
> 
> 
> On Jan 26, 2012, at 16:02, Burke Chih-Jen Ko (GBIF) wrote:
> 
>> Glad to see it works for you!
>> 
>> About running via port 80, there are several ways to do. One of them is being discussed at
>> http://code.google.com/p/gbif-providertoolkit/issues/detail?id=817
>> 
>> Let us know if comment 6 would help, but I still need to attend to Julien's example(comment 10) ASAP, then we later organise this as part of IPT documentation.
>> 
>> Cheers,
>> 
>> Burke
>> 
>> On Jan 26, 2012, at 8:48 PM, Skofic A. Milko (Bioversity - HQ) wrote:
>> 
>>> I just added the JAVA_HOME and the headless command to the plist and it works finally!!
>>> 
>>> Thanks a million, I bet there are a bunch of other applications that will need this.
>>> 
>>> A last question, I don't know much about the apache proxy business: do you know how to publish the site via port 80?
>>> 
>>> Thanks again very much!
>>> 
>>> Milko
>>> 
>>> Milko A. Škofič
>>> Programme Specialist, Biodiversity Informatics Project
>>> Understanding and Managing Biodiversity Programme
>>> Bioversity International - Via dei Tre Denari, 472/a - 00057 Maccarese (RM) - ITALY
>>> E-mail: m.skofic at cgiar.org
>>> Tel: +39 06 6118286
>>> Fax: +39 06 61979661
>>> 
>>> 
>>> 
>>> On Jan 25, 2012, at 17:38, Burke Chih-Jen Ko (GBIF) wrote:
>>> 
>>>> Hi Milko and Tim,
>>>> 
>>>> I hope I could have come back a little bit earlier.
>>>> 
>>>> Mac OS X Server 10.6 runs Tomcat using launchd, so in /System/Library/LaunchDaemons you can find org.apache.tomcat.plist, which contains the settings the OS runs the default Tomcat server. When booting the OS try run Tomcat as a daemon as instructed by the plist. The Server Admin changes the value of the plist.
>>>> 
>>>> Here I attach 2 files, one is the working version of the plist on my Mac OS X Server 10.6, the other is the wrapper script for launchd to call Tomcat. Please put the script in /Library/Tomcat/bin, make sure it's owned by _appserver:_appserveradm with file mode 775 (well at least this works for me). You can see that the "-Djava.awt.headless=true" that Tim mentioned is included.
>>>> 
>>>> So you can:
>>>> 1. Stop Tomcat by checking off the Tomcat checkbox in the web service pane of the Server Admin, save;
>>>> 2. Replace the attached files and check permissions;
>>>> 3. Start Tomcat by checking the checkbox and save;
>>>> 4. Watch the console log to see if there is any odd things.
>>>> 
>>>> I would then recommend that you deploy IPT using the tomcat app manager, by this way you can avoid some possible permission issues.
>>>> 
>>>> Let me know if this works for you.
>>>> 
>>>> Cheers,
>>>> 
>>>> Burke
>>>> <org.apache.tomcat.plist>
>>>> <tomcat-launchd.sh>
>>>> 
>>>> On Jan 25, 2012, at 6:44 PM, Tim Robertson wrote:
>>>> 
>>>>> Hi again,
>>>>> 
>>>>> Tomcat is a server application, but the code is using certain Java classes for the Rich Text Format generation which seemingly need to be instructed to run in headless mode - as the original error provided told us.  
>>>>> 
>>>>> What are the new errors you are seeing?  If you can provide stack traces we will be better able to diagnose and help you.
>>>>> 
>>>>> Cheers,
>>>>> Tim
>>>>> 
>>>>> 
>>>>> On Jan 25, 2012, at 11:38 AM, Skofic A. Milko (Bioversity - HQ) wrote:
>>>>> 
>>>>>> I tried that, but it still doesn't work, I get other errors however.
>>>>>> In any case I don't think that is the issue, since Tomcat is a server application, so the concept of having a keyboard and screen should not apply. I tried the example applications that came with Tomcat and they all work perfectly, so I really don't understand what is missing...
>>>>>> 
>>>>>> Milko A. Škofič
>>>>>> Programme Specialist, Biodiversity Informatics Project
>>>>>> Understanding and Managing Biodiversity Programme
>>>>>> Bioversity International - Via dei Tre Denari, 472/a - 00057 Maccarese (RM) - ITALY
>>>>>> E-mail: m.skofic at cgiar.org
>>>>>> Tel: +39 06 6118286
>>>>>> Fax: +39 06 61979661
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> On Jan 25, 2012, at 9:16, Tim Robertson wrote:
>>>>>> 
>>>>>>> Hi Milko
>>>>>>> 
>>>>>>> I am afraid I have not, but looking at the error:
>>>>>>> 
>>>>>>>> Caused by: java.lang.InternalError: Can't connect to window server - not enough permissions.
>>>>>>> and a bit of googling looks like you might need to set java.awt.headless=true to overcome this (headless means you tell Java that it is running on a machine in which the display, keyboard or mouse is lacking).
>>>>>>> 
>>>>>>> This would need to go into the Tomcat config but I am afraid I don't know where that is on OSX Server.
>>>>>>> 
>>>>>>> Hope this helps,
>>>>>>> Tim
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> On Jan 24, 2012, at 5:49 PM, Skofic A. Milko (Bioversity - HQ) wrote:
>>>>>>> 
>>>>>>>> Has anyone managed to make IPT run under Mac OS X Server 10.6.8 using the defaut installed Tomcat?
>>>>>>>> In my case the installation works fine, but when I go to the site I get a bunch of errors. I am able to run the IPT with Jetty and if I made another installation of Tomcat I suspect it would also work, but that is just what I don't want to do: I would like to use the default installation. Any ideas?
>>>>>>>> 
>>>>>>>> Running http://localhost:8080/ipt I get:
>>>>>>>> 
>>>>>>>> type Exception report
>>>>>>>> 
>>>>>>>> message
>>>>>>>> 
>>>>>>>> description The server encountered an internal error () that prevented it from fulfilling this request.
>>>>>>>> 
>>>>>>>> exception
>>>>>>>> 
>>>>>>>> Unable to instantiate Action, org.gbif.ipt.action.portal.HomeAction,  defined for '' in namespace '/'Caught Exception while registering Interceptor class org.gbif.ipt.struts2.SetupAndCancelInterceptor
>>>>>>>> 	com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:318)
>>>>>>>> 	com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:399)
>>>>>>>> 	com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:198)
>>>>>>>> 	org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
>>>>>>>> 	org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
>>>>>>>> 	com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
>>>>>>>> 	org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:475)
>>>>>>>> 	org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
>>>>>>>> 	org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
>>>>>>>> 	com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:66)
>>>>>>>> 	com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
>>>>>>>> 	com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
>>>>>>>> 
>>>>>>>> root cause
>>>>>>>> 
>>>>>>>> Caught Exception while registering Interceptor class org.gbif.ipt.struts2.SetupAndCancelInterceptor - interceptor - file:/Library/Tomcat/webapps/ipt/WEB-INF/classes/struts.xml:50:95
>>>>>>>> 	com.opensymphony.xwork2.ObjectFactory.buildInterceptor(ObjectFactory.java:213)
>>>>>>>> 	com.google.inject.struts2.Struts2Factory.superBuildInterceptor(Struts2Factory.java:166)
>>>>>>>> 	com.google.inject.struts2.Struts2Factory.access$200(Struts2Factory.java:45)
>>>>>>>> 	com.google.inject.struts2.Struts2Factory$ProvidedInterceptor.inject(Struts2Factory.java:201)
>>>>>>>> 	com.google.inject.struts2.Struts2Factory.createInjector(Struts2Factory.java:140)
>>>>>>>> 	com.google.inject.struts2.Struts2Factory.buildBean(Struts2Factory.java:104)
>>>>>>>> 	com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:161)
>>>>>>>> 	com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:150)
>>>>>>>> 	com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java:120)
>>>>>>>> 	com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:299)
>>>>>>>> 	com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:399)
>>>>>>>> 	com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:198)
>>>>>>>> 	org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
>>>>>>>> 	org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
>>>>>>>> 	com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
>>>>>>>> 	org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:475)
>>>>>>>> 	org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
>>>>>>>> 	org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
>>>>>>>> 	com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:66)
>>>>>>>> 	com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
>>>>>>>> 	com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
>>>>>>>> 
>>>>>>>> root cause
>>>>>>>> 
>>>>>>>> com.google.inject.ProvisionException: Guice provision errors:
>>>>>>>> 
>>>>>>>> 1) Error injecting constructor, java.lang.InternalError: Can't connect to window server - not enough permissions.
>>>>>>>>   at org.gbif.ipt.task.Eml2Rtf.<init>(Eml2Rtf.java:75)
>>>>>>>>   at org.gbif.ipt.task.Eml2Rtf.class(Eml2Rtf.java:75)
>>>>>>>>   while locating org.gbif.ipt.task.Eml2Rtf
>>>>>>>>     for parameter 13 at org.gbif.ipt.service.manage.impl.ResourceManagerImpl.<init>(ResourceManagerImpl.java:127)
>>>>>>>>   at org.gbif.ipt.service.manage.impl.ResourceManagerImpl.class(ResourceManagerImpl.java:108)
>>>>>>>>   while locating org.gbif.ipt.service.manage.impl.ResourceManagerImpl
>>>>>>>>   while locating org.gbif.ipt.service.manage.ResourceManager
>>>>>>>>     for parameter 2 at org.gbif.ipt.service.admin.impl.UserAccountManagerImpl.<init>(UserAccountManagerImpl.java:65)
>>>>>>>>   at org.gbif.ipt.service.admin.impl.UserAccountManagerImpl.class(UserAccountManagerImpl.java:54)
>>>>>>>>   while locating org.gbif.ipt.service.admin.impl.UserAccountManagerImpl
>>>>>>>>   while locating org.gbif.ipt.service.admin.UserAccountManager
>>>>>>>>     for parameter 3 at org.gbif.ipt.config.ConfigManagerImpl.<init>(ConfigManagerImpl.java:64)
>>>>>>>>   at org.gbif.ipt.config.ConfigManagerImpl.class(ConfigManagerImpl.java:64)
>>>>>>>>   while locating org.gbif.ipt.config.ConfigManagerImpl
>>>>>>>>   while locating org.gbif.ipt.service.admin.ConfigManager
>>>>>>>>     for field at org.gbif.ipt.struts2.SetupAndCancelInterceptor.configManager(SetupAndCancelInterceptor.java:21)
>>>>>>>>   while locating org.gbif.ipt.struts2.SetupAndCancelInterceptor
>>>>>>>> Caused by: java.lang.InternalError: Can't connect to window server - not enough permissions.
>>>>>>>> 	at java.lang.ClassLoader$NativeLibrary.load(Native Method)
>>>>>>>> 	at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1827)
>>>>>>>> 	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1724)
>>>>>>>> 	at java.lang.Runtime.loadLibrary0(Runtime.java:823)
>>>>>>>> 	at java.lang.System.loadLibrary(System.java:1045)
>>>>>>>> 	at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50)
>>>>>>>> 	at java.security.AccessController.doPrivileged(Native Method)
>>>>>>>> 	at java.awt.Toolkit.loadLibraries(Toolkit.java:1605)
>>>>>>>> 	at java.awt.Toolkit.<clinit>(Toolkit.java:1627)
>>>>>>>> 	at java.awt.Color.<clinit>(Color.java:263)
>>>>>>>> 	at org.gbif.ipt.task.Eml2Rtf.<init>(Eml2Rtf.java:77)
>>>>>>>> 	at org.gbif.ipt.task.Eml2Rtf$$FastClassByGuice$$cad0309a.newInstance(<generated>)
>>>>>>>> 	at com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40)
>>>>>>>> 	at com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:60)
>>>>>>>> 	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
>>>>>>>> 	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
>>>>>>>> 	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
>>>>>>>> 	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
>>>>>>>> 	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
>>>>>>>> 	at com.google.inject.Scopes$1$1.get(Scopes.java:65)
>>>>>>>> 	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
>>>>>>>> 	at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
>>>>>>>> 	at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
>>>>>>>> 	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
>>>>>>>> 	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
>>>>>>>> 	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
>>>>>>>> 	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
>>>>>>>> 	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
>>>>>>>> 	at com.google.inject.Scopes$1$1.get(Scopes.java:65)
>>>>>>>> 	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
>>>>>>>> 	at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:737)
>>>>>>>> 	at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
>>>>>>>> 	at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
>>>>>>>> 	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
>>>>>>>> 	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
>>>>>>>> 	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
>>>>>>>> 	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
>>>>>>>> 	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
>>>>>>>> 	at com.google.inject.Scopes$1$1.get(Scopes.java:65)
>>>>>>>> 	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
>>>>>>>> 	at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:737)
>>>>>>>> 	at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
>>>>>>>> 	at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
>>>>>>>> 	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
>>>>>>>> 	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
>>>>>>>> 	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
>>>>>>>> 	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
>>>>>>>> 	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
>>>>>>>> 	at com.google.inject.Scopes$1$1.get(Scopes.java:65)
>>>>>>>> 	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
>>>>>>>> 	at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:737)
>>>>>>>> 	at com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:53)
>>>>>>>> 	at com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:110)
>>>>>>>> 	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:94)
>>>>>>>> 	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
>>>>>>>> 	at com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978)
>>>>>>>> 	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
>>>>>>>> 	at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974)
>>>>>>>> 	at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1013)
>>>>>>>> 	at com.google.inject.struts2.Struts2Factory.buildBean(Struts2Factory.java:108)
>>>>>>>> 	at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:161)
>>>>>>>> 	at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:150)
>>>>>>>> 	at com.opensymphony.xwork2.ObjectFactory.buildInterceptor(ObjectFactory.java:191)
>>>>>>>> 	at com.google.inject.struts2.Struts2Factory.superBuildInterceptor(Struts2Factory.java:166)
>>>>>>>> 	at com.google.inject.struts2.Struts2Factory.access$200(Struts2Factory.java:45)
>>>>>>>> 	at com.google.inject.struts2.Struts2Factory$ProvidedInterceptor.inject(Struts2Factory.java:201)
>>>>>>>> 	at com.google.inject.struts2.Struts2Factory.createInjector(Struts2Factory.java:140)
>>>>>>>> 	at com.google.inject.struts2.Struts2Factory.buildBean(Struts2Factory.java:104)
>>>>>>>> 	at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:161)
>>>>>>>> 	at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:150)
>>>>>>>> 	at com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java:120)
>>>>>>>> 	at com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:299)
>>>>>>>> 	at com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:399)
>>>>>>>> 	at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:198)
>>>>>>>> 	at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
>>>>>>>> 	at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
>>>>>>>> 	at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
>>>>>>>> 	at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:475)
>>>>>>>> 	at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
>>>>>>>> 	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
>>>>>>>> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>>>>>> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>>>>> 	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:66)
>>>>>>>> 	at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
>>>>>>>> 	at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
>>>>>>>> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>>>>>> 	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:191)
>>>>>>>> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>>>>>>> 	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:298)
>>>>>>>> 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
>>>>>>>> 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
>>>>>>>> 	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
>>>>>>>> 	at java.lang.Thread.run(Thread.java:680)
>>>>>>>> 
>>>>>>>> 2) Error injecting constructor, java.lang.NoClassDefFoundError: Could not initialize class java.awt.Color
>>>>>>>>   at org.gbif.ipt.task.Eml2Rtf.<init>(Eml2Rtf.java:75)
>>>>>>>>   at org.gbif.ipt.task.Eml2Rtf.class(Eml2Rtf.java:75)
>>>>>>>>   while locating org.gbif.ipt.task.Eml2Rtf
>>>>>>>>     for parameter 13 at org.gbif.ipt.service.manage.impl.ResourceManagerImpl.<init>(ResourceManagerImpl.java:127)
>>>>>>>>   at org.gbif.ipt.service.manage.impl.ResourceManagerImpl.class(ResourceManagerImpl.java:108)
>>>>>>>>   while locating org.gbif.ipt.service.manage.impl.ResourceManagerImpl
>>>>>>>>   while locating org.gbif.ipt.service.manage.ResourceManager
>>>>>>>>     for parameter 4 at org.gbif.ipt.config.ConfigManagerImpl.<init>(ConfigManagerImpl.java:64)
>>>>>>>>   at org.gbif.ipt.config.ConfigManagerImpl.class(ConfigManagerImpl.java:64)
>>>>>>>>   while locating org.gbif.ipt.config.ConfigManagerImpl
>>>>>>>>   while locating org.gbif.ipt.service.admin.ConfigManager
>>>>>>>>     for field at org.gbif.ipt.struts2.SetupAndCancelInterceptor.configManager(SetupAndCancelInterceptor.java:21)
>>>>>>>>   while locating org.gbif.ipt.struts2.SetupAndCancelInterceptor
>>>>>>>> Caused by: java.lang.NoClassDefFoundError: Could not initialize class java.awt.Color
>>>>>>>> 	at org.gbif.ipt.task.Eml2Rtf.<init>(Eml2Rtf.java:77)
>>>>>>>> 	at org.gbif.ipt.task.Eml2Rtf$$FastClassByGuice$$cad0309a.newInstance(<generated>)
>>>>>>>> 	at com.google.inject.internal.cglib.reflect.$FastConstructor.newInstance(FastConstructor.java:40)
>>>>>>>> 	at com.google.inject.internal.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:60)
>>>>>>>> 	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:85)
>>>>>>>> 	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
>>>>>>>> 	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
>>>>>>>> 	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
>>>>>>>> 	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
>>>>>>>> 	at com.google.inject.Scopes$1$1.get(Scopes.java:65)
>>>>>>>> 	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
>>>>>>>> 	at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
>>>>>>>> 	at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
>>>>>>>> 	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
>>>>>>>> 	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
>>>>>>>> 	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
>>>>>>>> 	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
>>>>>>>> 	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
>>>>>>>> 	at com.google.inject.Scopes$1$1.get(Scopes.java:65)
>>>>>>>> 	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
>>>>>>>> 	at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:737)
>>>>>>>> 	at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:38)
>>>>>>>> 	at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:62)
>>>>>>>> 	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:84)
>>>>>>>> 	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
>>>>>>>> 	at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
>>>>>>>> 	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
>>>>>>>> 	at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
>>>>>>>> 	at com.google.inject.Scopes$1$1.get(Scopes.java:65)
>>>>>>>> 	at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
>>>>>>>> 	at com.google.inject.internal.InjectorImpl$3.get(InjectorImpl.java:737)
>>>>>>>> 	at com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:53)
>>>>>>>> 	at com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:110)
>>>>>>>> 	at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:94)
>>>>>>>> 	at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
>>>>>>>> 	at com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978)
>>>>>>>> 	at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
>>>>>>>> 	at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974)
>>>>>>>> 	at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1013)
>>>>>>>> 	at com.google.inject.struts2.Struts2Factory.buildBean(Struts2Factory.java:108)
>>>>>>>> 	at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:161)
>>>>>>>> 	at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:150)
>>>>>>>> 	at com.opensymphony.xwork2.ObjectFactory.buildInterceptor(ObjectFactory.java:191)
>>>>>>>> 	at com.google.inject.struts2.Struts2Factory.superBuildInterceptor(Struts2Factory.java:166)
>>>>>>>> 	at com.google.inject.struts2.Struts2Factory.access$200(Struts2Factory.java:45)
>>>>>>>> 	at com.google.inject.struts2.Struts2Factory$ProvidedInterceptor.inject(Struts2Factory.java:201)
>>>>>>>> 	at com.google.inject.struts2.Struts2Factory.createInjector(Struts2Factory.java:140)
>>>>>>>> 	at com.google.inject.struts2.Struts2Factory.buildBean(Struts2Factory.java:104)
>>>>>>>> 	at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:161)
>>>>>>>> 	at com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:150)
>>>>>>>> 	at com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java:120)
>>>>>>>> 	at com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:299)
>>>>>>>> 	at com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:399)
>>>>>>>> 	at com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:198)
>>>>>>>> 	at org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
>>>>>>>> 	at org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
>>>>>>>> 	at com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
>>>>>>>> 	at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:475)
>>>>>>>> 	at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
>>>>>>>> 	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
>>>>>>>> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>>>>>> 	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>>>>>> 	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:66)
>>>>>>>> 	at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
>>>>>>>> 	at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
>>>>>>>> 	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>>>>>> 	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:191)
>>>>>>>> 	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>>>>>>> 	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:298)
>>>>>>>> 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
>>>>>>>> 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
>>>>>>>> 	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
>>>>>>>> 	at java.lang.Thread.run(Thread.java:680)
>>>>>>>> 
>>>>>>>> 2 errors
>>>>>>>> 	com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:987)
>>>>>>>> 	com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1013)
>>>>>>>> 	com.google.inject.struts2.Struts2Factory.buildBean(Struts2Factory.java:108)
>>>>>>>> 	com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:161)
>>>>>>>> 	com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:150)
>>>>>>>> 	com.opensymphony.xwork2.ObjectFactory.buildInterceptor(ObjectFactory.java:191)
>>>>>>>> 	com.google.inject.struts2.Struts2Factory.superBuildInterceptor(Struts2Factory.java:166)
>>>>>>>> 	com.google.inject.struts2.Struts2Factory.access$200(Struts2Factory.java:45)
>>>>>>>> 	com.google.inject.struts2.Struts2Factory$ProvidedInterceptor.inject(Struts2Factory.java:201)
>>>>>>>> 	com.google.inject.struts2.Struts2Factory.createInjector(Struts2Factory.java:140)
>>>>>>>> 	com.google.inject.struts2.Struts2Factory.buildBean(Struts2Factory.java:104)
>>>>>>>> 	com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:161)
>>>>>>>> 	com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:150)
>>>>>>>> 	com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java:120)
>>>>>>>> 	com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:299)
>>>>>>>> 	com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:399)
>>>>>>>> 	com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:198)
>>>>>>>> 	org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
>>>>>>>> 	org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
>>>>>>>> 	com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
>>>>>>>> 	org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:475)
>>>>>>>> 	org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
>>>>>>>> 	org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
>>>>>>>> 	com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:66)
>>>>>>>> 	com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
>>>>>>>> 	com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
>>>>>>>> 
>>>>>>>> note The full stack trace of the root cause is available in the Apache Tomcat/6.0.32 logs.
>>>>>>>> 
>>>>>>>> Apache Tomcat/6.0.32
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> Milko A. Škofič
>>>>>>>> Programme Specialist, Biodiversity Informatics Project
>>>>>>>> Understanding and Managing Biodiversity Programme
>>>>>>>> Bioversity International - Via dei Tre Denari, 472/a - 00057 Maccarese (RM) - ITALY
>>>>>>>> E-mail: m.skofic at cgiar.org
>>>>>>>> Tel: +39 06 6118286
>>>>>>>> Fax: +39 06 61979661
>>>>>>>> 
>>>>>>>> 
>>>>>>>> 
>>>>>>>> _______________________________________________
>>>>>>>> IPT mailing list
>>>>>>>> IPT at lists.gbif.org
>>>>>>>> http://lists.gbif.org/mailman/listinfo/ipt
>>>>>>> 
>>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> IPT mailing list
>>>>> IPT at lists.gbif.org
>>>>> http://lists.gbif.org/mailman/listinfo/ipt
>>>> 
>>> 
>> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.gbif.org/pipermail/ipt/attachments/20120130/b701efda/attachment-0001.html 


More information about the IPT mailing list