我正在使用spring mvc创建一个Web应用程序.我已经开始整合Spring Security库.当我尝试使用eclipse将其部署到tomcat时,我现在在tomcat日志中收到以下错误.
我在我的库中使用以下jar版本
我也使用STS版本的eclipse,maven和vmware vfabric tc Server(捆绑了sts).
这是tomcat日志
SEVERE: Exception starting filter springSecurityFilterChain
java.lang.NoClassDefFoundError: org/springframework/context/EnvironmentAware
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2820)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1150)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2820)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1150)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:415)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:397)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:118)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:252)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:98)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4584)
at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5262)
at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5257)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) …Run Code Online (Sandbox Code Playgroud) 目标:我正在用ruby编写一个工作流命令行程序,该程序在UNIX shell上顺序执行其他程序,其中一些程序需要用户输入输入。
问题:虽然我可以成功地处理stdout,并stderr感谢这个有用的博客文章由尼克·查尔顿,不过,我卡在捕捉用户输入,并将其传递到子过程通过命令行。代码如下:
方法
module CMD
def run(cmd, &block)
Open3.popen3(cmd) do |stdin, stdout, stderr, thread|
Thread.new do # STDOUT
until (line = stdout.gets).nil? do
yield nil, line, nil, thread if block_given?
end
end
Thread.new do # STDERR
until (line = stderr.gets).nil? do
yield nil, nil, line, thread if block_given?
end
end
Thread.new do # STDIN
# ????? How to handle
end
thread.join
end
end
end
Run Code Online (Sandbox Code Playgroud)
调用方法
此示例调用shell命令units,该命令提示用户输入度量单位,然后提示您将其转换为单位。这就是它在外壳中的外观
> …Run Code Online (Sandbox Code Playgroud) 当我对SQL Server数据库运行以下SQL时:
SELECT
t1.id, t1.name, t2.status
FROM
t1
JOIN
t2 ON t1.id = t2.id
WHERE
t1.id = t2.id
Run Code Online (Sandbox Code Playgroud)
我得到以下结果
id name status
-------------------
1 bob active
1 bob draft
2 jim active
3 ted draft
Run Code Online (Sandbox Code Playgroud)
我正在试图弄清楚如何构造WHERE语句以获得以下所需结果.
id name status
-------------------
1 bob active
2 jim active
3 ted draft
Run Code Online (Sandbox Code Playgroud)
基本上我正在尝试解决的问题是当存在多个状态时删除重复行并删除行以支持状态活动,我真的试图避免嵌套查询或交叉(如果可能).