2013/11/21 Fredrik Andersson <fredan...@hotmail.com>:
> Hello Tomcat-experts!

It is hard to read you message.

> I have recently bought some space at a webhotel that uses Apache HTTP server 
> as front before a Tomcat 6.0.37.My account at the webhotel is said to support 
> Struts and Hibernate and such technics.At home I have developed a app that 
> uses those technics and of course it runs fine in a similar environment as 
> the one at the webhotel. I can deploy my app as a ROOT-app or a ordinary app 
> and the Struts works perfectly.
> At the webhotel I have tried to deploy it booth as a ROOT-app and as a 
> MYAPP-webapp-1.0.0.war-file
> Now I have stripped the app down to just a struts2-hello-world-app.
> But at the webhotel I just keep getting this when I try to access the 
> ActionClass through struts.xml:
> HTTP Status 404 - There is no Action mapped for namespace [/] and action name 
> [welcome] associated with context path [/MYAPP-webapp-1.0.0].type Status 
> reportmessage There is no Action mapped for namespace [/] and action name 
> [welcome] associated with context path [/MYAPP-webapp-1.0.0].description The 
> requested resource is not available.

> Unfortenatly the support guys at the webhotel says they lack knowledge of 
> Tomcat so they can not help me out.

If you want to change your hosting provider, there are a number of offers at
http://wiki.apache.org/tomcat/PoweredBy#Hosting_providers

> But today I at least found this exception in the catalina.log just after my 
> attempt yo access a struts-path:
> /-- Encapsulated exception ------------\ java.lang.NullPointerException: 
> permission can't be null at 
> java.security.AccessController.checkPermission(Unknown Source) at 
> java.lang.SecurityManager.checkPermission(Unknown Source) at 
> ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:834) at 
> ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1280) at 
> ognl.OgnlRuntime.setMethodValue(OgnlRuntime.java:1481) at 
> ognl.ObjectPropertyAccessor.setPossibleProperty(ObjectPropertyAccessor.java:85)
>  at ognl.ObjectPropertyAccessor.setProperty(ObjectPropertyAccessor.java:162) 
> at 
> com.opensymphony.xwork2.ognl.accessor.ObjectAccessor.setProperty(ObjectAccessor.java:27)
>  at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2318) at 
> com.opensymphony.xwork2.ognl.accessor.CompoundRootAccessor.setProperty(CompoundRootAccessor.java:77)
>  at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2318) at 
> ognl.ASTProperty.setValueBody(ASTProperty.java:127) at 
> ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220) at 
> ognl.SimpleNode.setValue(SimpleNode.java:301) at 
> ognl.Ognl.setValue(Ognl.java:737) at 
> com.opensymphony.xwork2.ognl.OgnlUtil.setValue(OgnlUtil.java:217) at 
> com.opensymphony.xwork2.ognl.OgnlValueStack.trySetValue(OgnlValueStack.java:186)
>  at 
> com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:173) 
> at 
> com.opensymphony.xwork2.ognl.OgnlValueStack.setParameter(OgnlValueStack.java:151)
>  at 
> com.opensymphony.xwork2.interceptor.ParametersInterceptor.setParameters(ParametersInterceptor.java:292)
>  at 
> com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:203)
>  at 
> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
>  at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>  at 
> com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
>  at 
> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
>  at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>  at 
> com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
>  at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>  at 
> org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
>  at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>  at 
> org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:90)
>  at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>  at 
> org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
>  at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>  at 
> com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
>  at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>  at 
> com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
>  at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>  at 
> com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
>  at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>  at 
> com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
>  at 
> com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
>  at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>  at 
> com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
>  at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>  at 
> org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
>  at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>  at 
> com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:192)
>  at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>  at 
> com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
>  at 
> com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
>  at 
> org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54) 
> at 
> org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:510) 
> at 
> org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
>  at 
> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
>  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at 
> sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at 
> java.lang.reflect.Method.invoke(Unknown Source) at 
> org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:270) at 
> org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:269) at 
> java.security.AccessController.doPrivileged(Native Method) at 
> javax.security.auth.Subject.doAsPrivileged(Unknown Source) at 
> org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:302) at 
> org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:243)
>  at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230)
>  at 
> org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:56)
>  at 
> org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:189)
>  at java.security.AccessController.doPrivileged(Native Method) at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
>  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.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190) at 
> org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291) at 
> org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:776) at 
> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:705) 
> at 
> org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:898)
>  at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
>  at java.lang.Thread.run(Unknown Source) 
> \--------------------------------------/
>
> I'm pretty sure this exception come from me. So perhaps the webhotel-admin 
> guys has set upp my rights incorrect?
> For a couple of weeks I have struggle to test different apache-mapping, 
> context.xml and struts-namespace-settings. At home it work but not at the 
> webhotel. Even though I start to think that it might not has anything to do 
> with this I just add some info below about my settings:
> Apache-mappings (that I have set at the webhotel):/*.jsp /*.jspx /*.jsf 
> /servlet/* /*.do /MYAPP-webapp-1.0.0/* /*
> (At home I just got: JkMount  /* worker1)
> Context.xml (from inside the MYAPP-webapp-1.0.0.war)<Context path="" 
> override="true" />
> In my struts.xml I got this snippet:    <package name="basicstruts2" 
> namespace="" extends="struts-default">                     <action 
> name="login">               <result type="dispatcher">/login.jsp</result>     
>           </action>
>                 <action name="welcome" 
> class="se.MYAPP.web.actions.WelcomeUserAction">                  <result 
> name="SUCCESS" type="dispatcher">/welcome.jsp</result>          </action>     
>           </package>
> In my web.xml I got this snippet:       <filter>                
> <filter-name>struts2</filter-name>              
> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
>       </filter>
>         <filter-mapping>                <filter-name>struts2</filter-name>    
>           <url-pattern>/*</url-pattern>   </filter-mapping>       But if I 
> try to access the struts paths 
> like:http://www.MYAPP.se/MYAPP-webapp-1.0.0/loginhttp://www.MYAPP.se/MYAPP-webapp-1.0.0/login.dohttp://www.MYAPP.se/MYAPP-webapp-1.0.0/login.action
> ...I just get the above 404.http://www.MYAPP.se/MYAPP-webapp-1.0.0/login.jsp 
> of course work.
> So if you guys got any ideas or anything I could ask the 
> webhotel-support-guys to look for please let me know.Any ideas are most 
> welcomeBest regardsFredrik


The message is that java.lang.SecurityManager.checkPermission()  was
called with a wrong argument. The code that makes that call is

> ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:834)

That is not Tomcat code. You should ask the authors of that OGNL
library (and check whether you use the latest version of it). They are
making that call with wrong arguments.


The rest is from my general knowledge. Usually the calls to
"checkPermission()" are performed only when you run with Java's
SecurityManager being enabled.  Try to enable it when you are running
at home and see whether the error reproduces itself. (Or try to
disable it in your production configuration and see how the error goes
away).

http://tomcat.apache.org/tomcat-6.0-doc/security-manager-howto.html

Best regards,
Konstantin Kolinko

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to