re: (原创)设计一个Tomcat访问日志分析工具 zhangzhicheng 2008-05-15 14:33
我是写了一个程序读txt文件,然后insert
re: 推荐两个firefox插件 x.matthew 2008-05-13 14:55
@千里冰封
firebug调试js非常方便的,现在公司用ext2.0做界面开发,经常需要用到firebug来进行调试。
btw: firebug 在线更新网址 http://addons.mozilla.org/firefox/addon/1843
re: 推荐两个firefox插件 于翔 2008-05-13 13:48
呵呵,谢谢,一直用firefox,不过插件用得不多!
re: 推荐两个firefox插件 千里冰封 2008-05-13 13:34
还有,firebug ,挺不错的一个插件
re: 推荐两个firefox插件 Nettcy 2008-05-13 09:33
用了一下fireftp,还不错,挺好用的,谢谢楼主。
re: 推荐两个firefox插件 王子6号 2008-05-13 09:29
不喜欢。
不过谢谢你的推荐。
@freeke
这个错误与监控平台本身无关。是这样的,你在启动服务的时候,会启动一个ActiveMQ的监控组件和tomcat服务监控组件,它们会去监听你本地是否有该服务,如果没有则会抛出你所说的错误,你可从配置中去掉这两个监控组件就行。
tomcat访问日志是文本文件,请问一下怎么把txt里的日志信息存到数据库里,就是如何把一条记录(其中有IP,日期,时间等)分解开来存到表中相应的字段下,我还没想到什么好方法,能告诉我吗?不知能否把你这部分的代码给我看看,我的邮箱是dragonboa@tom.com,十分感激.如果以后我做出来了,跟你有什么不同的,希望你也能帮我看看我的代码,谢谢!我现在毕设也是在做这个课题,感觉自己钻到死胡同了,没什么进展
博主您好!
我在安装后启动程序时报以下错误:
ERROR JmxSpySupportComponent - Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: localhost; nested exception is:
java.net.ConnectException: Connection refused]
java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: localhost; nested exception is:
java.net.ConnectException: Connection refused]
at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:317)
at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:248)
at org.springframework.jmx.support.MBeanServerConnectionFactoryBean.connect(MBeanServerConnectionFactoryBean.java:126)
at org.springframework.jmx.support.MBeanServerConnectionFactoryBean.afterPropertiesSet(MBeanServerConnectionFactoryBean.java:114)
at org.xmatthew.spy2servers.component.spy.jmx.JmxSpySupportComponent.startJmxConnection(JmxSpySupportComponent.java:149)
at org.xmatthew.spy2servers.component.spy.jmx.JmxSpySupportComponent.startup(JmxSpySupportComponent.java:76)
at org.xmatthew.spy2servers.thread.ComponentInvokeTask.executed(ComponentInvokeTask.java:37)
at org.xmatthew.spy2servers.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:83)
at org.xmatthew.spy2servers.thread.DedicatedTaskRunner.access$0(DedicatedTaskRunner.java:71)
at org.xmatthew.spy2servers.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:21)
Caused by: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: localhost; nested exception is:
java.net.ConnectException: Connection refused]
at com.sun.jndi.rmi.registry.RegistryContext.lookup(RegistryContext.java:97)
at com.sun.jndi.toolkit.url.GenericURLContext.lookup(GenericURLContext.java:185)
at javax.naming.InitialContext.lookup(InitialContext.java:351)
at javax.management.remote.rmi.RMIConnector.findRMIServerJNDI(RMIConnector.java:1817)
at javax.management.remote.rmi.RMIConnector.findRMIServer(RMIConnector.java:1787)
at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:259)
... 9 more
Caused by: java.rmi.ConnectException: Connection refused to host: localhost; nested exception is:
java.net.ConnectException: Connection refused
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:574)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:185)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:306)
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at com.sun.jndi.rmi.registry.RegistryContext.lookup(RegistryContext.java:93)
... 14 more
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.<init>(Socket.java:366)
at java.net.Socket.<init>(Socket.java:179)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:569)
... 19 more
re: (原创)设计一个Tomcat访问日志分析工具 x.matthew 2008-05-08 15:14
@zhangzhicheng
已经通过邮件回复给你了,收一下吧
re: (原创)设计一个Tomcat访问日志分析工具 zhangzhicheng 2008-05-07 21:10
接上面
我要做毕业设计.找不到合适的日志文件分析,我需要大量的tomcat访问日志文件,希望你能提供给我,我的题目基本上和你这个题目一样,我做完毕业设计,我可以把我的代码给你.
re: (原创)设计一个Tomcat访问日志分析工具 zhangzhicheng 2008-05-07 21:03
我想和你要tomcat访问日志文件(用tomcat日志阀生成的),如果可以的话,让我看看你写的代码.
本人email:zzz39300@yahoo.com.cn
QQ:393004421
谢谢!
re: (原创)搭建一个组件化的监控平台 fengyun5d 2008-05-06 17:51
研究一下,思路很好。
This significant new release replaces Acegi Security as the official security module for Spring applications.
acegi改换了一个名字!
@x.matthew
非常感谢楼主的热心,已经OK了
@dbclick
是这样的,你运行时,需要把spy2servers-core的源码和spy2servers-plugins源码放到两个项目中,因为两个项目在编译路径下META-INF目录下都有spring.schemas,会彼此覆盖所导致的。
@x.matthew
运行没有问题的,但是使用你的源代码就有问题了
我是在eclipse下创建spy2servers项目,然后把你的源代码拷到src下,运行的时候就报上面错误了。但是直接运行二进制代码就没有问题。
@dbclick
你需要把类库更新一下,由原来的spy2servers.jar,现在应该是两个类库spy2servers-core.jar和spy2servers-plugins.jar。 直接从上面的链接上就可以下载,更新到lib目录下。
采用新的配置文件老是报错,楼主帮帮忙吧
Exception in thread "main" org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 16 in XML document from class path resource [spy2servers.xml] is invalid; nested exception is org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'core-component'.
Caused by: org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'core-component'.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:236)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:172)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:382)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:316)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:429)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3185)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1955)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:705)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:324)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1693)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:250)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:292)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:73)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:361)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:313)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:290)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:131)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:147)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:173)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:112)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:79)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:101)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:394)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:324)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:122)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:66)
at org.xmatthew.spy2servers.adapter.spring.ContextServiceLocator.loadContext(ContextServiceLocator.java:28)
at org.xmatthew.spy2servers.command.StartCommand.execute(StartCommand.java:25)
at org.xmatthew.spy2servers.console.Main.main(Main.java:46)
这次只发布了用户端的使用手册,开发手册部分,尚且没有完成,待续。。。。
eclipse 3.3 面边的Ctal + Shift + T,已经提代了这个功能 。
@x.matthew
呵呵,上面这个回答才说道点子上,明白了,你是要从若干个可能没有被项目包含的jar包中找到某一个类
@lengyu
其实classlocator最大便利之处,我们在开发的时候,比如要找一个类StringUtils,却想不起来这个类所在jar文件是什么名字。比如使用maven构建项目的朋友知道,maven服务在本地有一个reponsitory目录,管理着所有的类库,现在要找一个类所在的jar文件,只需要让classlocator引入这些目录后,让很方便果找了。而且可以直接使用classlocator把选中的jar文件引用到编译环境中。
@wpf
这个与ctrl+shift+t应用是不同的。 ctrl+shift+t只适用于查找目前项目中的资源文件,但如果你要引用一个类,但你不知道这个类具体在哪个jar文件中,classlocator就非常有用了。
沙发!不错,正为怎样有效找类文件发悉呢,真是的非常的实用,非常感谢楼主无私的共享!~~~
re: (原创)设计一个Tomcat访问日志分析工具 log mining 2008-04-22 17:38
douspirit@126.com我的邮箱地址 你做的很不错呢 不知道你的原理是怎么样的 我现在正在做这个日志分析 希望能向你取取经 交流一下
re: (原创)基于组件化的监控平台开发监控(更新) x.matthew 2008-04-21 08:45
@tt
刚才链接没有引用正确,现已经更正。
今天SEO大赛关于西藏的问题,大家说说有没有什么想法啊?
关于西藏的问题,可以参考
http://www.bt285.cn/tibetisxizang 这里
re: (原创)Java实现一个自动排序List x.matthew 2008-04-17 15:05
@ZelluX
ZelluX你好,这样吧,我们把问题都分开来讲吧。
1. 关于用继承还是组合,我已经表面了我的意见。
2.关于LinkedList,我已经理解你的意思。这里我要强调是原来我原先的实现方式是
for(Object:object:List)这种每次都一次比较compare
与现在折半查找,比较O(logn)的比较。上面你也把代码拿出来了,也看到LinkedList是按从最一点,一个对象一个对象找,找的只是取它的next或previous地址引用(虽然java是值传递的,但这个值保存的内容是地址,这里是我说的地址引用意思)。这样如果拿10个数据来讲,各说最差的结果,那就是插入到最后。
第一种,应该要花费定位10次,比较10次。
第二种,应该是定位11次双向链表(5次+3次+2次+1次),比较四次
我是综合一起考虑的。
3.关于取名这块,的确我刚才没有理解你的意思,list不应该是有排序,所以这样取名的确是错误的,谢谢你提醒。
@流浪者
关于用继承还是组合,还是得看具体情况而定。但一般而言如果我们使用的是Java的基础类,这个基本上是很少改动,而且他本身已经有一套非常完善的接口定义做支持,所以建议还是使用继承。如果要扩展的类修改比较大,有可能将还会被废弃,建议使用composit或是适配器模式将其进行扩展,以减少耦合。
关于这个工具来源,主要是本人一个项目需要用到,如果用treeset的话,不能保存相同的值,所以使用起来不便,所以才去实现这个类。在这个也给大家介绍一个工具类叫 TreeList在apache commons-collections项目中,它也是基于二叉树结构实现的,效率很不错。
BTW:看到大家的回复,本人非常高兴也非常感谢大家。
re: (原创)Java实现一个自动排序List ZelluX 2008-04-17 14:30
@流浪者
不是我没看楼主的文章,是你也没仔细看我的回复。
我前面不是说了么,"SortedList"这么一个名字本来就是有问题的。
如何维持一个有序容器这个问题本来就是没什么好争的,不过是楼主硬要找一些理由敷衍罢了。
都争论上了啊,关注。
@ZelluX
TreeSet类没用过,但看了一下文档他的确能实现排序功能,又多了一个选择。但你说的List本来就是要保证原来的次序的这与人家说的排序是哪里和哪里啊,有没有仔细看楼主的文章啊?
@x.matthew
楼主关于继承和composite我也是一直困惑,我看Spring的源代码使用全是继承,而且看它的代码我也是觉得写得很不错,容易读,但网上一直说继承的耦合性和扩展性都不强,晕了,那难到Spring这个产品很烂?楼主能否帮忙讲讲什么时候应该怎么用呢?
re: (原创)Java实现一个自动排序List ZelluX 2008-04-17 14:20
@x.matthew
我是看了LinkedList的源代码才发刚才那个回复的。既然你硬要看这个,那我贴出来看一下好了。
LinkedList.get方法调用了一个私有方法entry
private Entry<E> entry(int index) {
if (index < 0 || index >= size)
throw new IndexOutOfBoundsException("Index: "+index+
", Size: "+size);
Entry<E> e = header;
if (index < (size >> 1)) {
for (int i = 0; i <= index; i++)
e = e.next;
} else {
for (int i = size; i > index; i--)
e = e.previous;
}
return e;
}
从目标元素离链表近的那端开始,挨个移动过去。哪来什么“地址的引用”。
这是第一个问题。
其实,定位和比较有什么好比的。再怎么样两者的性能差只是常数倍。但是你改了程序以后算法复杂度就提升了一个级别,这不是常数倍能挽回的性能损失。
List有序就是指按照插入的顺序,你一排序那还叫List吗?