- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试向 Controller 注入(inject) session 范围的服务。这是我的 Controller 类 ActionController.groovy:
package rafonline
import grails.converters.JSON
import grails.plugin.springsecurity.annotation.Secured
@Secured("ROLE_ADMIN")
class ActionController {
def tweetingService
def index() {
}
def retweetUsers(){
String message="done"
boolean success=true
try {
final def handles=String.valueOf(params.handles).trim().split("\n")
final def passwords=String.valueOf(params.passwords).trim().split("\n")
final def numRTs=String.valueOf(params.numRTs).trim().split("\n")
final def statusIdsString=String.valueOf(params.tweetURLs).trim().split("\n")
if(!tweetingService.isRunning){
new Thread(new Runnable(){
@Override
void run() {
tweetingService.retweetUsers(statusIdsString,handles,passwords,numRTs);
}
}).start();
}
} catch (Exception e) {
message=e.getMessage()
success=false
}
render contentType: 'text/json', text: [success: success, message: "${message}"] as JSON
}
def getUpdateProgress(){
render contentType: 'text/json',text:[running:tweetingService.isRunning,message: tweetingService.messsage] as JSON
}
}
import grails.transaction.Transactional
import org.jsoup.Connection
import org.jsoup.Jsoup
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element
import org.jsoup.select.Elements
@Transactional
class TweetingService {
private final String PARAM1 = "some1";
private final String PARAM2 = "some2";
private final String PARAM3 = "some3";
private final String USER_AGENT = "some4";
private final Long TIMEOUT = 60000
static scope = "session"
def messsage = "Waiting"
def isRunning = false
def stopit=false
def retweetUsers(String[] statusIds, String[] username, String[] password, String[] numRTs) {
if (isRunning) {
return
} else {
try {
int count = 1;
isRunning = true
statusIds=convertStatusURLArrayToStatusIDArray(statusIds)
def totalLength = statusIds.length
for (int i = 0; i < statusIds.length; i++) {
def statusId = statusIds[i]
def numRT = username.length
try{
numRT=Integer.parseInt(numRTs[i])
}catch(Exception e){
numRT=username.length
}
shuffleArray(username, password)
messsage = "Processing ${i + 1} of ${totalLength}"
for (int j = 0; j < numRT; j++) {
if(stop){
stop=false
break;
}
try {
//Do something
} catch (Exception e) {
e.printStackTrace();
}
messsage = "Total Processed: ${totalLength} Failed: ${totalLength - count} Success:${count}"
}
}
} catch (Exception e) {
} finally {
isRunning=false
}
}
}
def Map<String, String> getFormParams(String html, String username, String password)
throws UnsupportedEncodingException {
System.out.println("Extracting form's data...");
Document doc = Jsoup.parse(html);
// Google form id
Element loginform = doc.getElementsByTag("form").get(2);
Elements inputElements = loginform.getElementsByTag("input");
List<String> paramList = new ArrayList<String>();
Map<String, String> map = new HashMap<String, String>();
for (Element inputElement : inputElements) {
String key = inputElement.attr("name");
String value = inputElement.attr("value");
if (key.equals("session[username_or_email]"))
value = username;
else if (key.equals("session[password]"))
value = password;
map.put(key, value);
}
// build parameters list
return map;
}
def convertStatusURLArrayToStatusIDArray(String[]statusIdArray){
String[]outputArray=new String[statusIdArray.length]
for(int i=0;i<statusIdArray.length;i++){
outputArray[i]=getStatusIdFromTweetURL(statusIdArray[i]);
}
return outputArray
}
def getStatusIdFromTweetURL(String tweetURL){
def tokens=tweetURL.split("/")
for(String s:tokens){
try{
Long.parseLong(s)
return s
}catch (Exception e){
}
}
return null
}
static void shuffleArray(String[] usernames, String[] passwords) {
Random rnd = new Random();
for (int i = usernames.length - 1; i > 0; i--) {
int index = rnd.nextInt(i + 1);
// Simple swap
String a = usernames[index];
usernames[index] = usernames[i];
usernames[i] = a;
String b = passwords[index];
passwords[index] = passwords[i];
passwords[i] = b;
}
}
def stop(){
stopit=Boolean.TRUE
}
}
def retweetUsers(){
String message="done"
boolean success=true
try {
final def handles=String.valueOf(params.handles).trim().split("\n")
final def passwords=String.valueOf(params.passwords).trim().split("\n")
final def numRTs=String.valueOf(params.numRTs).trim().split("\n")
final def statusIdsString=String.valueOf(params.tweetURLs).trim().split("\n")
if(!tweetingService.isRunning){
new Thread(new Runnable(){
@Override
void run() {
tweetingService.retweetUsers(statusIdsString,handles,passwords,numRTs);
}
}).start();
}
} catch (Exception e) {
message=e.getMessage()
success=false
}
render contentType: 'text/json', text: [success: success, message: "${message}"] as JSON
}
def getUpdateProgress(){
render contentType: 'text/json',text:[running:tweetingService.isRunning,message: tweetingService.messsage] as JSON
}
}
2015-04-02 16:47:22,552 [localhost-startStop-1] ERROR context.GrailsContextLoader - Error initializing the application: Error creating bean with name 'rafonline.ActionController': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tweetingService': Scope 'session' is not active for the current thread; consider defining a scoped proxy for this bean if you intend to refer to it from a singleton; nested exception is java.lang.IllegalStateException: 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.
Message: Error creating bean with name 'rafonline.ActionController': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tweetingService': Scope 'session' is not active for the current thread; consider defining a scoped proxy for this bean if you intend to refer to it from a singleton; nested exception is java.lang.IllegalStateException: 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
->> 529 | doCreateBean in org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 127 | doCreateBean in org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory
| 458 | createBean . . . . . . . . . . in org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory
| 296 | getObject in org.springframework.beans.factory.support.AbstractBeanFactory$1
| 223 | getSingleton . . . . . . . . . in org.springframework.beans.factory.support.DefaultSingletonBeanRegistry
| 293 | doGetBean in org.springframework.beans.factory.support.AbstractBeanFactory
| 194 | getBean . . . . . . . . . . . . in ''
| 628 | preInstantiateSingletons in org.springframework.beans.factory.support.DefaultListableBeanFactory
| 932 | finishBeanFactoryInitialization in org.springframework.context.support.AbstractApplicationContext
| 479 | refresh in ''
| 156 | getApplicationContext . . . . . in org.codehaus.groovy.grails.commons.spring.DefaultRuntimeSpringConfiguration
| 169 | configure in org.codehaus.groovy.grails.commons.spring.GrailsRuntimeConfigurator
| 127 | configure . . . . . . . . . . . in ''
| 122 | configureWebApplicationContext in org.codehaus.groovy.grails.web.context.GrailsConfigUtils
| 108 | initWebApplicationContext . . . in org.codehaus.groovy.grails.web.context.GrailsContextLoader
| 112 | contextInitialized in org.springframework.web.context.ContextLoaderListener
| 4973 | listenerStart . . . . . . . . . in org.apache.catalina.core.StandardContext
| 5467 | startInternal in ''
| 150 | start . . . . . . . . . . . . . in org.apache.catalina.util.LifecycleBase
| 1559 | call in org.apache.catalina.core.ContainerBase$StartChild
| 1549 | call . . . . . . . . . . . . . in ''
| 262 | run in java.util.concurrent.FutureTask
| 1145 | runWorker . . . . . . . . . . . in java.util.concurrent.ThreadPoolExecutor
| 615 | run in java.util.concurrent.ThreadPoolExecutor$Worker
^ 745 | run . . . . . . . . . . . . . . in java.lang.Thread
Caused by BeanCreationException: Error creating bean with name 'tweetingService': Scope 'session' is not active for the current thread; consider defining a scoped proxy for this bean if you intend to refer to it from a singleton; nested exception is java.lang.IllegalStateException: 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.
最佳答案
我认为错误为您提供了解决方案
'tweetingService': Scope 'session' is not active for the current thread; consider defining a scoped proxy for this bean if you intend to refer to it from a singleton;
static proxy=true
在服务中它应该工作
关于Grails 无法将 session 范围的服务注入(inject) Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29411774/
我正在尝试测试依赖于其他服务 authService 的服务 documentViewer angular .module('someModule') .service('docu
如果我的网站上线(不要认为它会,目前它只是一个学习练习)。 我一直在使用 mysql_real_escape_string();来自 POST、SERVER 和 GET 的数据。另外,我一直在使用 i
我有以下代码,它容易受到 SQL 注入(inject)的攻击(我认为?): $IDquery = mysqli_query($connection, "SELECT `ID` FROM users W
我一直在自学如何创建扩展,以期将它们用于 CSS 注入(inject)(以及最终以 CSS 为载体的 SVG 注入(inject),但那是以后的问题)。 这是我当前的代码: list .json {
这个简单的代码应该通过 Java Spring 实现一个简单的工厂。然而结果是空指针,因为 Human 对象没有被注入(inject)对象(所以它保持空)。 我做错了什么? 谢谢 配置 @Config
我正在编写一个 ASP.NET MVC4 应用程序,它最终会动态构建一个 SQL SELECT 语句,以便稍后存储和执行。动态 SQL 的结构由用户配置以用户友好的方式确定,具有标准复选框、下拉列表和
首先让我说我是我为确保 SQL 注入(inject)攻击失败而采取的措施的知己。所有 SQL 查询值都是通过事件记录准备语句完成的,所有运算符(如果不是硬编码)都是通过数字白名单系统完成的。这意味着如
这是 SQL 映射声称可注入(inject)的负载: user=-5305' UNION ALL SELECT NULL,CONCAT(0x716b6b7071,0x4f5577454f76734
我正在使用 Kotlin 和 Android 架构组件(ViewModel、LiveData)构建一个新的 Android 应用程序的架构,并且我还使用 Koin 作为我的依赖注入(inject)提供
假设 RequestScope 处于 Activity 状态(使用 cdi-unit 的 @InRequestScope) 给定 package at.joma.stackoverflow.cdi;
我有一个搜索表单,可以在不同的提供商中搜索。 我从拥有一个基本 Controller 开始 public SearchController : Controller { protected r
SQLite 注入 如果您的站点允许用户通过网页输入,并将输入内容插入到 SQLite 数据库中,这个时候您就面临着一个被称为 SQL 注入的安全问题。本章节将向您讲解如何防止这种情况的发生,确保脚
我可以从什么 dll 中获得 Intercept 的扩展?我从 http://github.com/danielmarbach/ninject.extensions.interception 添加了
使用 NInject 解析具有多个构造函数的类似乎不起作用。 public class Class1 : IClass { public Class1(int param) {...} public
我有一个 MetaManager 类: @Injectable() export class MetaManager{ constructor(private handlers:Handler
我是 Angular 的新手,我不太清楚依赖注入(inject)是如何工作的。我的问题是我有依赖于服务 B 的服务 A,但是当我将服务 A 注入(inject)我的测试服务 B 时,服务 B 变得未定
我正在为我的项目使用 android 应用程序启动、刀柄和空间。我在尝试排队工作时遇到错误: com.test E/WM-WorkerFactory: Could not instantiate co
我不确定这是什么糖语法,但让我向您展示问题所在。 def factors num (1..num).select {|n| num % n == 0} end def mutual_factors
简单的问题,我已经看过这个了:Managing imports in Scalaz7 ,但我不知道如何最小化注入(inject) right和 left方法到我的对象中以构造 \/ 的实例. 我确实尝
在我的 Aurelia SPA 中,我有一些我想在不同模块中使用的功能。它依赖于调用时给出的参数和单例的参数。有没有办法创建一个导出函数,我可以将我的 Auth 单例注入(inject)其中,而不必在
我是一名优秀的程序员,十分优秀!