小编jpp*_*ade的帖子

可能是RejectedExecutionException的原因

我在我的tomcat服务器上获得此异常(+ liferay)

java.util.concurrent.RejectedExecutionException
Run Code Online (Sandbox Code Playgroud)

我的课就是这样的:

public class SingleExecutor extends ThreadPoolExecutor {
  public SingleExecutor(){
    super(1, 1,0L, TimeUnit.MILLISECONDS,new LinkedBlockingQueue<Runnable>());
  }

  @Override
  public void execute(Runnable command) {
    if(command instanceof AccessLogInsert){
        AccessLogInsert ali = (AccessLogInsert)command;
        ali.setConn(conn);
        ali.setPs(ps);
    }
    super.execute(command);
  }
}
Run Code Online (Sandbox Code Playgroud)

我在行上遇到此异常super.execute(command); 当队列已满但LinkedBlockingQueue大小为2 ^ 31时,可能会发生此错误,我确信没有这么多命令等待.

一开始一切都很稳定,但在重新部署战争之后它就开始了.这个类不是战争的一部分,而是在tomcat/lib的jar中.

你知道为什么会发生这种情况以及如何解决这个问题吗?

java multithreading

62
推荐指数
2
解决办法
6万
查看次数

spring我应该在每个类上使用@DirtiesContext

我有几个junit测试,

@ContextConfiguration(locations = { "file:../business/src/test/resources/application-context-test.xml",
        "file:src/main/webapp/WEB-INF/confA.xml", "classpath:/mvc-dispatcher-servlet-test.xml"})
@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
public class ProductContentControllerTest {
...
}
Run Code Online (Sandbox Code Playgroud)

在类中,所有测试都必须在相同的上下文中运行(在这种情况下).

但我希望我所有的测试类都是独立的.我假设它是默认行为,但是当我一起运行所有测试时,它似乎运行得太快了.

它是如何工作的?应用程序上下文是否仅针对每个测试类启动一次?

我应该添加:@DirtiesContext(classMode = ClassMode.AFTER_CLASS)

在每个测试类?

谢谢

junit spring spring-test spring-junit

19
推荐指数
1
解决办法
2万
查看次数

Listview onItemClick有时没有响应

我有一个listview和一个自定义适配器.

在我的列表视图中我设置了这个:

lv.setOnItemClickListener(...)

一切都很好.但是当我开始滚动时却没有.当我慢慢向下滚动它是稳定的(onItemClick被调用)但是当我更快地向下滚动或快速向下和向上滚动几次时,选择一个项目不会触发事件.但是,如果我稍等一下或继续点击一个项目或慢慢滚动到顶部,它会随机工作.

有时,当我单击某个项目时,它会显示黄色背景(并且不会调用onItemClick).有时橙色背景会在我停止触摸后停留(并且onItemClick未被调用).有时背景根本不会改变(并且onItemClick没有被调用).有时候它有效.

列表中的项目由几个textView/imageview/linearlayout(我为每个focusable设置= false,它没有改变)组成,并使用视图持有者动态充气.

有人知道什么是错的或有想法如何调试它?

(源代码太大了,不能粘贴在这里,如果你愿意,我可以发给你源代码或apk)

android listview

7
推荐指数
1
解决办法
1554
查看次数

Android:使用自定义键盘编辑文本

我按照 sdk 中的示例创建了自己的自定义键盘。

现在我想在我的应用程序中的 EditText 上默认使用这个自定义键盘(实际上我必须长按 edittext 然后选择我的custom keyboard)。

我怎样才能做到这一点 ?(似乎与 inputType 属性有关,但我不知道如何设置它)

谢谢 !

keyboard android android-edittext

5
推荐指数
1
解决办法
4774
查看次数

带有spring cache和aspectj的NoClassDefFoundError

我在春季webapp(春季3.1)中收到此错误,我不知道为什么.

org.springframework.web.util.NestedServletException:处理程序处理失败; 嵌套异常是java.lang.NoClassDefFoundError:mypackage/TestCache $ AjcClosure1

($AjcClosure1很奇怪)

如果我@Cacheable在下面的类中注释注释,则错误消失了.

public class TestCache {

        @Cacheable(value ="myCache")
        public List<String> getDummyList(){
            Logger l = Logger.getLogger(this.getClass());
            l.error("calling getDummyList");
            ArrayList<String> foo = new ArrayList<String>();
            foo.add("foo");
            foo.add("bar");
            return foo;
        }

    }
Run Code Online (Sandbox Code Playgroud)

我的控制器类(简化):

@Controller
@RequestMapping("/mypage")
public class MyController {


    @RequestMapping
    public String index(ModelMap model, Locale locale) {
        TestCache tc = new TestCache();
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

应用程序上下文(仅缓存部分):

<cache:annotation-driven mode="aspectj"/>
    <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager" p:cache-manager-ref="ehcache"/>
    <bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" p:config-location="classpath:ehcache.xml"/>
Run Code Online (Sandbox Code Playgroud)

我尝试了代理和aspectj模式(在代理模式下减少错误但缓存无效)

这个Web应用程序最初是使用roo构建的,并使用spring mvc和webflow.所以applicationContext.xml或webmvc-config.xml中有相当多的xml(我无法理解一些bean在做什么).我使用m2e-wtp在eclipse中运行wepapps,而pom.xml正在使用插件aspectj-maven-plugin(但不知道它的作用)

看起来问题与aspectj有关,但我从未使用aspectJ.如果有人spring/java/aspectj guru可以解释我是什么造成了这个错误以及我如何使我的缓存工作它会很棒!(我只能找到教程但没有使用可缓存注释的示例项目).

java spring aspectj spring-mvc ehcache

5
推荐指数
1
解决办法
2401
查看次数

编译时检查构造函数是否存在

我使用如下构造函数将 hibernate 查询映射到对象:

Constructor<Product> contructor = Product.class.getConstructor(String.class, String.class, Integer.class, String.class, String.class, String.class,
                        String.class,String.class, String.class,Boolean.class);
criteria.setResultTransformer(new AliasToBeanConstructorResultTransformer(contructor));
Run Code Online (Sandbox Code Playgroud)

如果有人通过添加参数来修改构造函数,则此代码将在运行时失败。可以在编译时确保我们需要的构造函数确实存在吗?

java reflection

5
推荐指数
1
解决办法
1023
查看次数

Hibernate过滤器实体,其中oneToMany关系包含一个对象

我想使用hibernate过滤器,但我不知道我想做什么是可能的

我有2个实体:

消息和MessageUser.

消息具有MessageUser列表.

我想创建一个过滤器,所以我可以这样做:

final Session filteredSession = sessionFactory.openSession();
final Filter filter = filteredSession.enableFilter("userRecipient");
filter.setParameter("userRecipient", myUser);
filter.validate();

final List<Message> userMessages = filteredSession.createQuery("from Message").list();
Run Code Online (Sandbox Code Playgroud)

它只返回myUser是收件人的邮件?

有可能和如何?

非常感谢 !

java hibernate hibernate-filters

3
推荐指数
1
解决办法
7171
查看次数