Error downgrade grails 2.0.0.RC1 - grails

I'm upgrading my application to Grails 2.0.0 RC3.
Now, I want to downgrade my application to Grails 2.0.0 RC1 but when I run it I have this error:
Error 500: Internal Server Error
URI
/directory/
Class
java.lang.IllegalStateException
Message
No thread-bound request found: Are you referring to request attributes outside of an actual web
request, or processing a request outside of the originally receiving thread? If you are actually
operating within a web request and still receive this message, your code is probably running
outside of DispatcherServlet/DispatcherPortlet: In this case, use RequestContextListener or
RequestContextFilter to expose the current request.
Trace
Line | Method
->> 886 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 908 | run in ''
^ 662 | run . . in java.lang.Thread
I have no idea how to get rid of it.

Related

Grails No thread-bound request found error?

Following spring securty and saml plugin tutorial i have created a simple app.
Here are links to the tutorial i followed to create simple hello world app.
http://grails-plugins.github.io/grails-spring-security-core/2.0.x/guide/tutorials.html
https://www.wave-access.com/public_en/blog/2014/june/23/how-we-configured-saml-20-on-grails.aspx
I could finally make the saml plugin to configure.
The app now runs but is throwing 500 runtime error as shown below.
I have looked around for a while and havent found any useful solution. The app and plugins are both old because i have to use grails 2.2.
I am using grails 2.2.
I appreciate any insights as to what is causing this no thread bound request found exception.
For your reference i have published the code in github
https://github.com/learningcscience/saml
Thanks!
|Loading Grails 2.2.0
No mavenInfo file found.
|Configuring classpath
.
|Environment set to development
.................................
|Packaging Grails application
....
|Compiling 1 source files
.............
|Running Grails application
Configuring Spring Security Core ...
... finished configuring Spring Security Core
Configuring Spring Security SAML ...
Registering metadata key: ping and value: security/idp-local.xml
...finished configuring Spring Security SAML
|Server running. Browse to http://localhost:8080/bookstore
Error |
2021-09-19 12:47:23,330 [http-bio-8080-exec-3] ERROR [/bookstore].[gsp] - Servlet.service() for servlet [gsp] in context with path [/bookstore] threw exception
Message: No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread? If you are actually operating within a web request and still receive this message, your code is probably running outside of DispatcherServlet/DispatcherPortlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request.
Line | Method
->> 1152 | runWorker in java.util.concurrent.ThreadPoolExecutor
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 622 | run in java.util.concurrent.ThreadPoolExecutor$Worker
^ 748 | run . . . in java.lang.Thread
Error |
2021-09-19 12:47:24,146 [http-bio-8080-exec-2] ERROR [/bookstore].[default] - Servlet.service() for servlet [default] in context with path [/bookstore] threw exception
Message: No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread? If you are actually operating within a web request and still receive this message, your code is probably running outside of DispatcherServlet/DispatcherPortlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request.
Line | Method
->> 1152 | runWorker in java.util.concurrent.ThreadPoolExecutor
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 622 | run in java.util.concurrent.ThreadPoolExecutor$Worker
^ 748 | run . . . in java.lang.Thread
After taking a quick look at your configuration, it looks like You have not completed step 3 of your SAML on GRAILS tutorial:
3. Key manager settings
[....]
Download and save sp.xml in grails-app/conf/security/folder. Copy ipd.xml, which we have generated on OpenAM server configuration, in the same folder. Add sp and idp settings in Config.groovy:
grails.plugins.springsecurity.saml.metadata.sp.file = 'security/sp.xml'
grails.plugins.springsecurity.saml.metadata.providers = [idp: 'security/idp.xml']
grails.plugins.springsecurity.saml.metadata.defaultIdp = 'idp'
grails.plugins.springsecurity.saml.metadata.sp.defaults = [
local: true,
alias: 'localSp',
securityProfile: 'metaiop',
signingKey: 'apollo',
encryptionKey: 'apollo',
requireArtifactResolveSigned: true,
requireLogoutRequestSigned: true,
requireLogoutResponseSigned: true
]
Note that the tutorial says "Copy ipd.xml", which probably is a typo. Should it be idp.xml instead?

Could not resolve dependency for renderiing plugin in Grails 3

I added rendering plugin as dependency in build.gradle for my grails 3 project as mentioned in https://grails.org/plugin/rendering
compile ":rendering:1.0.0"
When I execute 'gradle dependencies',it says failed. It did not give me any error message but it says failed when the dependencies are listed.
These are the default repositories generated with project
repositories {
mavenLocal()
maven { url "https://repo.grails.org/grails/core" }
}
I tried even this way but did not work
compile "rendering:rendering:1.0.0"
Let me know if I am missing anything or the syntax is wrong.
Version 1.0.0 of rendering plugin is not compatible with Grails 3. Compatible version is 2.0.0-SNAPSHOT and above.
compile "org.grails.plugins:rendering:2.0.0-SNAPSHOT"
in build.gradle should be good with the repository that is currently present.
With Grails 2.*, yes you would need to use this repo: http://repo.grails.org/grails/plugins/org/grails/plugins/rendering/1.0.0/.
maven { url "https://repo.grails.org/grails/plugins" }
We could resolve the dependency injection issue. There was some issue with the project we were working on.So, created a new project and it is working fine. Thankyou.
But we are still having issue with render method.We are calling the render method as below to get the generate the pdf. 'pdf' template is located atviews/render/_pdf.gsp
ByteArrayOutputStream baos = new ByteArrayOutputStream();
pdfRenderingService.render([template: '/render/pdf', model: [form:"Hello text"]],baos)
It is throwing the below exception. Can anyone let us know if we are calling render method in wrong way.
Line | Method
->> 1142 | runWorker in java.util.concurrent.ThreadPoolExecutor
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 617 | run in java.util.concurrent.ThreadPoolExecutor$Worker
^ 745 | run . . . in java.lang.Thread
Caused by NullPointerException: null
->> 1337 | getPublicDeclaredMethods in java.beans.Introspector
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 1197 | getTargetMethodInfo in ''
| 426 | getBeanInfo in ''
| 173 | getBeanInfo in ''
| 31 | init . . in grails.plugins.rendering.document.RenderEnvironment
| 68 | with in ''
| 60 | with . . in ''
| 65 | generateXhtml in grails.plugins.rendering.document.XhtmlDocumentService
| 35 | createDocument in ''
| 36 | render in grails.plugins.rendering.RenderingService
| 43 | buildPdf in RenderController.groovy

Grails spring-security-ldap connecting to localhost:389

I'm using the spring-security-ldap:2.0-RC2 plugin with Grails 2.3.2. I'm trying to connect to an Active Directory server. I've configured the plugin as follows in config.groovy
grails.plugins.springsecurity.ldap.context.server = 'ldap://[ip]:389'
grails.plugins.springsecurity.ldap.context.managerDn = '[DN]'
grails.plugins.springsecurity.ldap.context.managerPassword = '[password]'
grails.plugins.springsecurity.ldap.authorities.ignorePartialResultException = true
grails.plugins.springsecurity.ldap.authorities.retrieveDatabaseRoles = true
grails.plugins.springsecurity.ldap.search.filter = '(sAMAccountName={0})'
grails.plugins.springsecurity.ldap.search.base = [searchbase]
grails.plugins.springsecurity.ldap.search.searchSubtree = true
grails.plugins.springsecurity.ldap.auth.hideUserNotFoundExceptions = false
grails.plugins.springsecurity.ldap.search.attributesToReturn = ['name', 'mail']
I get a connection error. However, the connection is listed as localhost:389, not the AD server I've specified.
Caused by CommunicationException: localhost:389; nested exception is
javax.naming.CommunicationException: localhost:389 [Root exception is java.net.ConnectException:
Connection refused: connect]
->> 76 | attemptAuthentication in
grails.plugin.springsecurity.web.authentication.RequestHolderAuthenticationFilter
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 49 | doFilter in ''
| 82 | doFilter . . . . . . in
grails.plugin.springsecurity.web.authentication.logout.MutableLogoutFilter
| 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 615 | run . . . . . . . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^ 745 | run in java.lang.Thread
Note: I've tried connecting (in a separate Groovy project) with Groovy-Ldap.jar
I make a connection with:
ldap = LDAP.newInstance('ldap://[ip]:389', '[DN]', '[password]')
and this works fine. I can connect to the AD.
Any idea what can be wrong and why localhost:389 is tried and the AD I specified?
Note: in my Grails project I am using a ProxySettings.groovy file with several entries in http.nonProxyHosts (all servers that need to be accessed in the internal network). I've tried including the AD server in the nonProxyHosts but this makes no difference.
Regards,
Jan-Willem Klomp
You should be getting a warning in the output telling you that you're using grails.plugins.springsecurity as the property prefix but that it's been changed in 2.0 to grails.plugin.springsecurity. Your custom properties are being ignored and only the defaults are being used.

Grails: Response headers full and no response sent

| Error 2012-10-29 14:51:19,847 [http-bio-8443-exec-3] ERROR http11.Http11Processor - Error processing request
Message: An attempt was made to write more data to the response headers than there was room available in the buffer. Increase maxHttpHeaderSize on the connector or write less data into the response headers.
Line | Method
->> 886 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 908 | run in ''
^ 680 | run . . in java.lang.Thread
| Error 2012-10-29 14:51:19,850 [http-bio-8443-exec-3] ERROR http11.Http11Processor - Error finishing response
Message: An attempt was made to write more data to the response headers than there was room available in the buffer. Increase maxHttpHeaderSize on the connector or write less data into the response headers.
Line | Method
->> 886 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 908 | run in ''
^ 680 | run . . in java.lang.Thread
This happens very randomly in my local development environment (grails run-app -https). No matter what the browser is.
I'm running Grails 2.1.0 on Mac OSX with the following plugins:
aws-sdk 1.3.12 -- AWS SDK Grails Plugin
cookie-session 0.1.2 -- Cookie Session Plugin
hibernate 2.1.0 -- Hibernate for Grails
jquery 1.7.1 -- JQuery for Grails
jquery-ui 1.8.15 -- jQuery UI resources
mail 1.0 -- Provides Mail support to a running Grails application
newrelic 0.1 -- Newrelic Plugin
qrcode 0.3 -- QR Code plugin
quartz 1.0-RC2 -- Quartz plugin for Grails
resources 1.1.6 -- Resources
spring-security-core1.2.7.3 -- Spring Security Core Plugin
tomcat 2.1.0 -- Apache Tomcat plugin for Grails
webxml 1.4.1 -- WebXmlConfig
Any ideas what could cause this?
EDIT:
Noticed that this seems to happen after logging in (Spring security login form) when the browser is forwarded to j_spring_security_check. With Chrome & Firefox it's possible to stop this happening for a while by reseting the browser. IE doesn't behave similarly, instead just keeps giving this error (the error is shown only in grails console).
There's something that fills the headers. Possibly the cookie-session plugin?

MissingMethodException: No signature of method: getBean() after recompilation

This code adds getBean() methods to the classes we are using:
clazz.metaClass.getBean = { String name ->
return VaadinUtils.getBean(name)
}
clazz.metaClass.getBean = { Class type ->
return VaadinUtils.getBean(type)
}
It works without problem when the application is started and it also survives few recompilations. Recompilation is done like this:
def reloadedClass = application.classLoader.loadClass(vaadinGrailsClass.clazz.name)
After few recompilations, it says that getBean() method is missing and the exception is thrown (so one has to restart and redeploy the application under development).
Caused by MissingMethodException: No signature of method:
com.myapp.SaveIssueDetailListener.getBean() is applicable for argument types:
(java.lang.Class) values: [class agiletool.core.IssueService]
Possible solutions: getClass(), getForm(), getAt(java.lang.String)
->> 30 buttonClick in com.myapp.SaveIssueDetailListener$$ENRHmYFM
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
512 receiveEvent in com.vaadin.event.ListenerMethod
164 fireEvent . . . . . in com.vaadin.event.EventRouter
1219 fireEvent in com.vaadin.ui.AbstractComponent
550 fireClick . . . . . in com.vaadin.ui.Button
217 changeVariables in ''
1451 changeVariables . . in com.vaadin.terminal.gwt.server.AbstractCommunicationManager
1399 handleVariableBurst in ''
1318 handleVariables . . in ''
763 doHandleUidlRequest in ''
296 handleUidlRequest . in com.vaadin.terminal.gwt.server.CommunicationManager
501 service in com.vaadin.terminal.gwt.server.AbstractApplicationServlet
191 service . . . . . . in com.vaadin.terminal.gwt.server.GrailsAwareApplicationServlet
886 runTask in java.util.concurrent.ThreadPoolExecutor$Worker
908 run . . . . . . . . in ''
680 run in java.lang.Thread
This is how we call the getBean() method:
public void buttonClick(ClickEvent event) {
UserService userService = getBean(UserService) //...
Any idea what might be wrong?
The problem occurs only in old versions of plugin for Vaadin 6. Vaadin plugin (for Vaadin 7) for Grails has been done from scratch and this issue doesn't exist there.
More info can be found in related JIRA issue.
More details about new Vaadin can be found on http://vaadinongrails.com/

Resources