小编Tom*_*icz的帖子

在tomcat上使用jamon.war

我正在使用JAMon,我想使用它jamon.war来监控我的应用程序.但是,我的应用程序和jamon.war应用程序有不同的类加载器,因此他们没有看到彼此的静态变量(据我所知,数据存储在哪里).当我MonitorFactory.getReport()在我的应用程序中调用时,我收到了正确的数据.

如何使这个工作?

java tomcat jamon

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

Java中用于高级作业调度的框架是什么?

在我的应用程序中,我需要定期运行后台任务(我可以使用Quartz轻松地完成该任务-即安排要在特定时间定期运行的给定作业)。

但我想多控制一点。特别是我需要:

  1. 让系统重新运行未按计划的时间运行的任务(即服务器已关闭,因此未运行该任务。在这种情况下,我希望“后代”任务尽快运行)
  2. 轻松控制任务会很好-即按需运行任务,或者查看给定任务的最后运行时间,或重新安排给定任务在不同时间运行

在我看来,以上几点可以通过Spring Batch Admin来实现,但是我在这方面还没有很多经验。另外,我已经看到很多关于Spring Batch不是调度工具的文章,所以我开始怀疑这里应该使用哪种合适的工具。

所以我的问题是:以上内容可以通过Spring Batch Admin实现吗?也许Quartz就足够了,但需要配置以完成上述操作?还是我都需要?或者是其他东西?

非常感谢:)彼得

java scheduling quartz-scheduler spring-batch-admin

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

Drools Fusion支持持久的长期运行事件

我正在考虑使用Drools Fusion来实现以下示例性规则:

  • 如果顾客在一年内购买了两件相同的产品,她将免费获得第三件
  • 为了在最多连续三次交易中花费超过200美元,客户可以获得折扣
  • 当客户闲置超过一年时,会生成提醒
  • 当单个订单大于最后六个monhts内的平均订单价值时,将通知主管
  • ......等等,这些只是我头脑中的例子

所有这些规则都可以使用Drools Fusion轻松表达.然而,在创建原型并查看文档后,似乎该产品更适合短期,瞬态事件(股票市场,实时决策).

问题是:是否需要将所有事件存储在内存中?(可能有数百万的旧购买).此外,Drools Fusion可以存储事件,以便它们在服务器重启后能够存活吗 (理想情况下在数据库中).

我知道Drools Fusion事件只是Drools Expert中的事实,所以也许这个问题可以扩展到:Drools Expert能否坚持并懒惰加载事实?

java drools complex-event-processing drools-fusion

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

我可以通过 Spring/Hibernate/c3p0 将一个池数据源用于多个数据库吗?

我们的应用程序使用 Spring/Hibernate 进行数据库访问。我们使用多个hibernate会话工厂(hibernate3.LocalSessionFactoryBean),因为数据位于多个单独的数据库中。每个会话工厂都使用 c3p0 ( ) 配置了一个池数据源c3p0.ComboPooledDataSource

事实上,这些数据库都驻留在同一个数据库服务器上。我们的问题是,我们最终会得到许多数据库连接池,所有这些都连接到同一台服务器。有没有一种方法可以共享一个池数据源来访问同一服务器上的多个数据库?是否可以jdbcUrl在会话工厂级别而不是数据源级别进行配置?

或者这在实践中不是一个真正的问题?配置多个数据库连接池是否完全可以?

spring hibernate datasource c3p0

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

带有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
查看次数

如何在春季创建新会话?

我正在使用spring 3(注释)和jsf,我知道如何创建一个会话以及如何使其失效......

所以当我登录并使用最后的注销按钮时,外翻效果很好.但问题是,如果我没有点击退出按钮,会话仍然存在.如果我现在使用其他用户登录,则旧会话数据仍然存在 - 因为旧会话未被无效.

那么如果旧会话没有失效,我如何强制系统创建新会话?

java session spring

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

检索quartz调度程序中的servletContext引用

我在基于Spring 3.0的应用程序中使用Quartz Scheduler.我成功地能够创建新的调度程序,它们工作正常.

我见过这样的参考.

但是..我无法在我的石英作业文件中检索servletContext.任何人都可以帮助我如何在executeInternal()方法中检索servletContext引用?

Gunjan Shah,thx.

servlets quartz-scheduler

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

使用WCF REST在PUT和POST之间的区别

我试图实现REST WCF以探索PUT和POST动词之间的区别.我已使用该服务在某个位置上传了一个文件.

服务实现如下:

[OperationContract]
[WebInvoke(UriTemplate = "/UploadFile", Method = "POST")]
void UploadFile(Stream fileContents);

public void UploadFile(Stream fileContents)
{
 byte[] buffer = new byte[32768];
 MemoryStream ms = new MemoryStream();
 int bytesRead, totalBytesRead = 0;
 do
 {
       bytesRead = fileContents.Read(buffer, 0, buffer.Length);
       totalBytesRead += bytesRead;

       ms.Write(buffer, 0, bytesRead);
  } while (bytesRead > 0);

  using (FileStream fs = File.OpenWrite(@"C:\temp\test.txt")) 
  { 
      ms.WriteTo(fs); 
   }

  ms.Close();
Run Code Online (Sandbox Code Playgroud)

}

客户端代码如下:

HttpWebRequest request =     (HttpWebRequest)HttpWebRequest.Create("http://localhost:1922   /EMPRESTService.svc/UploadFile");
        request.Method = "POST";
        request.ContentType = "text/plain";

        byte[] fileToSend = File.ReadAllBytes(@"C:\TEMP\log.txt");  // txtFileName contains …
Run Code Online (Sandbox Code Playgroud)

c# wcf wcf-rest

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

数千个主题的高性能 DefaultMessageListenerContainer 配置

对于我当前的项目,我需要使用来自许多目的地(从数百到 20 或 30k)的消息,所有目的地都是主题。当前(对于初始负载测试)所有消息都在同一服务器的本地线程池中创建。

我当前的 spring 配置在代理网络(用于集群)和 DefaultMessageListenerContainers (DMLCs) 网络中使用嵌入式 activemq,带有一个公共 TaskExecutor。虽然目的地数量非常多,但每个目的地的吞吐量相对较低。

我唯一的要求是尽快消耗所有消息。

我的配置:

<bean id="connectionfactory" class="org.springframework.jms.connection.CachingConnectionFactory" destroy-method="destroy">
    <property name="targetConnectionFactory">
        <ref bean="amqConnectionFactory" />
    </property>
</bean>
<bean id="amqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
    <property name="brokerURL" value="vm://localhost:61616?async=false&amp;jms.dispatchAsync=false" />
    <property name="userName" value="admin" />
    <property name="password" value="admin" />
</bean>
<bean id="listenerThreadPoolTaskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
    <property name="corePoolSize" value="70" />
    <property name="maxPoolSize" value="70" />
    <property name="daemon" value="true" />
    <property name="keepAliveSeconds" value="60" />
</bean>

<!-- Message Listener Container Template for Topics -->
<bean id="topiccontainertemplate" class="org.springframework.jms.listener.DefaultMessageListenerContainer" scope="prototype"
    destroy-method="destroy">
    <property name="autoStartup" value="false" />
    <property name="connectionFactory" …
Run Code Online (Sandbox Code Playgroud)

java spring activemq-classic jms spring-jms

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

使用Spring 3进行动态作业调度

我开发了一个Web爬虫,它使用Start URL作为种子参数进行爬网.我希望允许用户根据作业安排此任务.

目前我正在使用Spring 3.1.2Hibernate.我需要给用户一个接收cronJob参数的前端,并根据我想要运行爬虫.是否可以使用弹簧来做到这一点.

我读了一下,Quartz但SO或其他网站上的文章一点也不清楚,或者它们不完整,以便完全理解如何在春天实现调度程序.

我知道有三个组成部分的基础知识

  1. SchedulerFacotry
  2. 触发
  3. 工作(服务运行)

我希望有人可以指导我正确的方向.

java spring spring-mvc scheduled-tasks java-ee

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