Code Monkey home page Code Monkey logo

disconf's Issues

war包部署的问题

hi,我按照disconf-web/README中的步骤部署。其中配置文件我是从disconf/disconf-web/src/main/resources目录下拷贝过来的。更改了其中jdbc-mysql.properties的jdbc.db_0.username、jdbc.db_0.password。redis-config.properties文件我没看明白,因为我司redis都不需要密码的,为了适配这个文件,我也在redis.conf中requirepass foobared。另外,没看懂redis.group1.client1.name和redis.group1.client2.name这个怎么设置?rabbit.properties中修改了username和password,使用的是如下root用户,这样配置是否有错?
image
zoo.properties没有修改。
P.S.上述所有基础服务我是部署在一台虚拟机上,不知这样配置是否有错?
然后用admin登陆网页,显示“服务器内部错误”。
新手提问,比较业余,求不喷^-^。谢谢各位技术大佬!

disconf-web创建新的app失败

在AppController 的方法 JsonObjectBase create(@Valid AppNewForm appNewForm) 中 发现 从web前端传过来的appNewForm 为空对象。 还需要修改其他的 配置信息吗?

可以考虑不指定PO的DB字段,同时升级缺省的mysql驱动

Hi,我认为指定了PO的DB字段就限制了数据库名字,使用上不太方便。我在部署第一套环境的时候已经创建了数据库(名称不是disconf),这会导致功能不可用。可以考虑在jdbc-mysql.properties中直接指定url就行,这样可以进一步放宽使用限制。另外,disconf缺省使用的是mysql的connector,这个遵循的开源协议时GPL,建议改成mariadb,这个遵循的Apache License 2.0开源协议,目前使用mariadb的用户应该更多。

Disconf 一处硬编码问题com.baidu.disconf.core.common.restful.impl.RestfulMgrImpl

com.baidu.disconf.core.common.restful.impl.RestfulMgrImpl
private File retryDownload(String fileName, RemoteUrl remoteUrl, int retryTimes, int retrySleepSeconds)
throws Exception {

    String tmpFileDir = "./disconf/download";   //为什么要硬编码………………  有没有考虑到可能有问题
    String tmpFilePath = OsUtil.pathJoin(tmpFileDir, fileName);
    String tmpFilePathUnique = MyStringUtils.getRandomName(tmpFilePath);
    File tmpFilePathUniqueFile = new File(tmpFilePathUnique);
    retry4ConfDownload(remoteUrl, tmpFilePathUniqueFile, retryTimes, retrySleepSeconds);

    return tmpFilePathUniqueFile;
}

构造一个下载器有关下载目录问题

打算像Tutorial 10 中介绍的实现一个配置更新下载器agent,但是所有配置都只能下载到disconf.user_define_download_dir指定的目录下么,如果我想不同的配置下载到不同的目录这个可以实现么?

spring版本问题

项目用的spring 4.1.2版本,发现按照xml reload配置,无法reload,重启后生效。
把spring版本下降至和demo中的版本一样,3.1.2,可以reload。
在demo环境中,修改了spring版本至4.1.2,问题同样重现。
还未找出原因,能否看下是什么问题?希望能支持高版本

disconf-web在多个实例的情况下,用户session会失效

比如一个 http://127.0.0.1 同时路由到2个tomcat的disconf实例,在disconf-web成功登录后,再刷新 api/account/session 马上就失效了(单实例无影响)

nginx配置类似于

upstream disconf {
      server 127.0.0.1:8080;
          server 127.0.0.1:8081;
 }

server {
    listen   80;
    location / {
        root /data/tomcat/webapps/disconf-war/html;

        if ($query_string) {
            expires max;
        }
    }

    location ~ ^/(api|export) {
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_pass http://disconf;
    }
}

权限检查不通过,无法添加新的应用

Hi,手动创建了数据表role/role_resource并增加了记录进行关联,METHOD_MASK改为0123,记录如下:
0 0 /api/app 0123 2015-09-21 16:18:10
发现代码中下面这行:
public static final char METHOD_IS_ACCESSIBLE = '1';
只允许访问方法PUT,这是什么缘故?

看代码,上述配置在解析时只会把PUT方法加入缓存,当前台视图创建APP的时候发现是POST方法,无法通过检查,莫非这是disconf有意为之?

数据库role_resource没有同步创建

目前sql脚本没有自动生成role_resource表,手动创建该表以后提示没有权限访问资源。目前初步分析是这样,还没有继续往下分析。以下是请求log:
ca53fa30-0ed0-4632-a858-8fd11a41dd9a 2015-09-21 16:01:48,684 [http-bio-8080-exec-2] INFO com.baidu.dsp.common.interceptor.login.LoginInterceptor - /api/app
ca53fa30-0ed0-4632-a858-8fd11a41dd9a 2015-09-21 16:01:48,688 [http-bio-8080-exec-2] INFO com.baidu.disconf.web.service.roleres.service.impl.RoleResourceMgrImpl - Querying role_resource table to get all...
ca53fa30-0ed0-4632-a858-8fd11a41dd9a 2015-09-21 16:01:48,688 [http-bio-8080-exec-2] INFO com.baidu.dsp.common.dao.AbstractDao - ----null disconf.role_resource
ca53fa30-0ed0-4632-a858-8fd11a41dd9a 2015-09-21 16:01:48,688 [http-bio-8080-exec-2] INFO com.baidu.dsp.common.dao.AbstractDao - select method_mask,role_id,update_time,role_res_id,url_description,url_pattern from disconf.role_resource []
ca53fa30-0ed0-4632-a858-8fd11a41dd9a 2015-09-21 16:01:48,701 [http-bio-8080-exec-2] WARN com.baidu.dsp.common.handler.MyExceptionHandler - /api/app ExceptionHandler FOUND. com.baidu.dsp.common.exception.AccessDeniedException null
ca53fa30-0ed0-4632-a858-8fd11a41dd9a 2015-09-21 16:01:48,702 [http-bio-8080-exec-2] WARN com.baidu.dsp.common.handler.MyExceptionHandler - details: Access Denied: /api/app/, method:POST, UserId:1, RoleId:1

war部署无法下载资源文件

示例项目为 dis ,示例资源文件 datasource.properties
测试了tomcat8,
如果是 /dis 或dis.war部署都不能下载资源文件

jetty9.2 /dis 可以正常运行项目 ,dis.war方法启动无法下载资源文件

disconf是否有支持git托管计划呢

开源的Spring Cloud Config已经支持将配置文件持久化到GIT服务器了,这个对于配置文件的管理确实是个优势,disconf是否有考虑将配置文件托管在Git服务器上呢?

添加配置项异常

当添加配置的value有字符"/"

disconf-web 无法正常显示

|----/disconf/redis-demo_1.0.0_local
|----file
|----redis.properties
|----slimina_0_dab369bc-7834-4ad4-8c3c-8004dddefd37 {"redis.host":"192.168.1.90","redis.port":6379}
|----item
|----user.name
|----slimina_0_dab369bc-7834-4ad4-8c3c-8004dddefd37 tomcater\

缺少表结构

8b9b7d4b-3f1b-4f3c-b51e-74b40689c23d 2015-06-04 16:20:33,320 [http-nio-8080-exec-7] INFO  com.baidu.dsp.common.dao.AbstractDao - select ownapps,role_id,token,name,user_id,password from disconf.user where name=? limit ?, ?   [admin, 0, 1]

但是在user表中没看到role_id这个字段

CREATE TABLE `user` (
    `user_id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
    `name` VARCHAR(50) NOT NULL COMMENT '姓名',
    `password` VARCHAR(255) NOT NULL COMMENT '密码',
    `token` VARCHAR(255) NOT NULL COMMENT 'token',
    PRIMARY KEY (`user_id`)
)

zoo.properties

zoo.properties 里面的两个属性什么意思,应该如何配置。
zookeeper如何配置启动,能给个例子吗?

能支持公共配置么

现实使用中,同1个产品会有很多模块,然后同1个环境中,这些模块可能都有一些公共的配置(譬如数据库配置)又有模块自己本身的配置;想问一下,这种情况下,有没有办法把公共的配置抽取开来?然后支持多个disconf.properties或者说配置文件里面支持配置多个env或者版本之类;

版本2.6.22和2.6.23配置文件更新后回调方法没触发

第一次使用disconf,看了官方文档后,下载版本2.6.23研究,发现web端更改配置后,client端的自己做的例子的回调方法就是无法触发,然后下载了2.6.21,client端的回调方法就正常触发了.然后看到版本2.6.22说修复了个bug,所以我又下载了版本2.6.22,测试时发现client端的回调方法又不触发了。就2.6.21正常。。。对2.6.23代码稍微跟踪了下,web更改配置后,client端里的DisconfCoreProcessUtils类callOneConf方法里的List iDisconfUpdates = disconfStoreProcessor.getUpdateCallbackList(key)时,是空的,所以回调类里的reload没触发。但是2.6.21却可以正常。。。;请问,这是怎么回事,是不是版本2.6.22修复bug或删除多余代码引起的,导致IDisconfUpdate的实现类没被扫描到啊?

本地拉取配置enable.remote.conf=false好像有问题?

我在项目中配置了enable.remote.conf=false。然后将所有的配置文件放在classpath下面,确认文件都是齐全的
项目中配置了两种读取方式,一种是分布式annotation托管,一种是静态托管。配置如下:

    <context:component-scan base-package="com.xxx.product"/>

    <aop:aspectj-autoproxy proxy-target-class="true"/>

    <!-- 使用disconf必须添加以下配置 -->
    <bean id="disconfMgrBean" class="com.baidu.disconf.client.DisconfMgrBean"
          destroy-method="destroy">
        <property name="scanPackage" value="com.xxx.product"/>
    </bean>
    <bean id="disconfMgrBean2" class="com.baidu.disconf.client.DisconfMgrBeanSecond"
          init-method="init" destroy-method="destroy">
    </bean>

    <bean id="configproperties_no_reloadable_disconf"
          class="com.baidu.disconf.client.addons.properties.ReloadablePropertiesFactoryBean">
        <property name="locations">
            <list>
                <value>classpath:/xxx.properties</value>
                ...
            </list>
        </property>
    </bean>

    <bean id="propertyConfigurer"
          class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="ignoreResourceNotFound" value="false"/>
        <property name="ignoreUnresolvablePlaceholders" value="true"/>
        <property name="propertiesArray">
            <list>
                <ref bean="configproperties_no_reloadable_disconf"/>
            </list>
        </property>
    </bean>

通过debug信息,并追踪了disconf的初始化过程,发现第一次扫描已经根据DisClientConfig.getInstance().ENABLE_DISCONF读取到并加载了正确的本地配置。
静态托管的文件都没有问题,应用可以读取到本地配置文件。
annotation托管的配置实例Bean的配置项属性值运行中都为null。

没找到原因。这是个bug吗?

disconf-web 配置

配置文件包括:

- jdbc-mysql.properties (数据库配置)
- redis-config.properties (Redis配置)
- zoo.properties (Zookeeper配置)
- application.properties (应用配置)
注意,记得执行将application-demo.properties复制成application.properties:

cp application-demo.properties application.properties 

问下这里能否给出样例,主要是 application.properties,而且没找到 application-demo.properties。

谢谢。

update:

找到了,不好意思。

ScanMgrImpl.java中的secondScan( )方法中有代码错误

public void secondScan() throws Exception {

        // 不开启disconf则不需要处理回调
        if (!DisClientConfig.getInstance().ENABLE_DISCONF) {

            if (scanModel == null) {
                synchronized(scanModel) {
                    // 下载模块必须先初始化
                    if (scanModel == null) {
                        throw new Exception("You should run first scan before second Scan");
                    }
                }
            }

            // 将回调函数实例化并写入仓库
            ScanDynamicStoreAdapter.scanUpdateCallbacks(scanModel);
        }
    }

**if (!DisClientConfig.getInstance().ENABLE_DISCONF)**判断条件写反了......

是否可以不把配置Copy到classpath中?

目前,disconf启动的时候会把配置文件Copy一份到class path中,是否支持配置不Copy到class path中?
disconf.enable_local_download_dir_in_class_path 这个配置不能生效!

为了线上应用的安全性,数据库密码和其它配置的信息都是保密的,一般会把配置放在一个一般用户没有权限的目录下,而应用对一般有用是开放的,如果配置被copy到classpath下,安全性大大降低。

是否考虑支持该特性?从user_define_download_dir加载配置,而不是Copy到class path

JavaBean property 'locations' being accessed! Ambiguous write methods found next to actually used

因bean ReloadablePropertiesFactoryBean 有属性locations和 Spring中的**PropertyPlaceholderConfigurer**属性有冲突,在启动的时候经常出现下面警告,如果出现警告连接不到web后台配置

WARN GenericTypeAwarePropertyDescriptor:116 - Invalid JavaBean property 'locations' being accessed! Ambiguous write methods found next to actually used [public void com.baidu.disconf.client.addons.properties.ReloadablePropertiesFactoryBean.setLocations(java.util.List)]: [public void org.springframework.core.io.support.PropertiesLoaderSupport.setLocations(org.springframework.core.io.Resource[])

编译出错org.xml.sax.SAXParseException; systemId: http://www.springframework.org/schema/mvc/spring-mvc.xsd; lineNumber: 24; columnNumber: 20; cos-all-limited.1.2

D:\software\apache-tomcat-7.0.61\bin\catalina.bat run
[2015-09-10 05:13:55,123] Artifact disconf-web:war exploded: Server is not connected. Deploy is not available.
Using CATALINA_BASE: "C:\Users\Ozz8.IntelliJIdea14\system\tomcat\Unnamed_disconf-base"
Using CATALINA_HOME: "D:\software\apache-tomcat-7.0.61"
Using CATALINA_TMPDIR: "D:\software\apache-tomcat-7.0.61\temp"
Using JRE_HOME: "C:\Program Files\Java\jdk1.7.0_67"
Using CLASSPATH: "D:\software\apache-tomcat-7.0.61\bin\bootstrap.jar;D:\software\apache-tomcat-7.0.61\bin\tomcat-juli.jar"
Connected to the target VM, address: '127.0.0.1:61149', transport: 'socket'
九月 10, 2015 5:13:56 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server version: Apache Tomcat/7.0.61
九月 10, 2015 5:13:56 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server built: Mar 27 2015 12:03:56 UTC
九月 10, 2015 5:13:56 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Server number: 7.0.61.0
九月 10, 2015 5:13:56 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: OS Name: Windows 8.1
九月 10, 2015 5:13:56 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: OS Version: 6.3
九月 10, 2015 5:13:56 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Architecture: amd64
九月 10, 2015 5:13:56 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Java Home: C:\Program Files\Java\jdk1.7.0_67\jre
九月 10, 2015 5:13:56 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: JVM Version: 1.7.0_67-b01
九月 10, 2015 5:13:56 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: JVM Vendor: Oracle Corporation
九月 10, 2015 5:13:56 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: CATALINA_BASE: C:\Users\Ozz8.IntelliJIdea14\system\tomcat\Unnamed_disconf-base
九月 10, 2015 5:13:56 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: CATALINA_HOME: D:\software\apache-tomcat-7.0.61
九月 10, 2015 5:13:56 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:61149,suspend=y,server=n
九月 10, 2015 5:13:56 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcom.sun.management.jmxremote=
九月 10, 2015 5:13:56 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcom.sun.management.jmxremote.port=1099
九月 10, 2015 5:13:56 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcom.sun.management.jmxremote.ssl=false
九月 10, 2015 5:13:56 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcom.sun.management.jmxremote.authenticate=false
九月 10, 2015 5:13:56 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.rmi.server.hostname=127.0.0.1
九月 10, 2015 5:13:56 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.util.logging.config.file=C:\Users\Ozz8.IntelliJIdea14\system\tomcat\Unnamed_disconf-base\conf\logging.properties
九月 10, 2015 5:13:56 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
九月 10, 2015 5:13:56 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.endorsed.dirs=D:\software\apache-tomcat-7.0.61\endorsed
九月 10, 2015 5:13:56 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcatalina.base=C:\Users\Ozz8.IntelliJIdea14\system\tomcat\Unnamed_disconf-base
九月 10, 2015 5:13:56 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Dcatalina.home=D:\software\apache-tomcat-7.0.61
九月 10, 2015 5:13:56 下午 org.apache.catalina.startup.VersionLoggerListener log
信息: Command line argument: -Djava.io.tmpdir=D:\software\apache-tomcat-7.0.61\temp
九月 10, 2015 5:13:56 下午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
信息: Loaded APR based Apache Tomcat Native library 1.1.33 using APR version 1.5.1.
九月 10, 2015 5:13:56 下午 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
九月 10, 2015 5:13:56 下午 org.apache.catalina.core.AprLifecycleListener initializeSSL
信息: OpenSSL successfully initialized (OpenSSL 1.0.1m 19 Mar 2015)
九月 10, 2015 5:13:56 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["http-apr-8080"]
九月 10, 2015 5:13:56 下午 org.apache.coyote.AbstractProtocol init
信息: Initializing ProtocolHandler ["ajp-apr-8009"]
九月 10, 2015 5:13:56 下午 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 1092 ms
九月 10, 2015 5:13:56 下午 org.apache.catalina.core.StandardService startInternal
信息: Starting service Catalina
九月 10, 2015 5:13:56 下午 org.apache.catalina.core.StandardEngine startInternal
信息: Starting Servlet Engine: Apache Tomcat/7.0.61
九月 10, 2015 5:13:57 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["http-apr-8080"]
九月 10, 2015 5:13:57 下午 org.apache.coyote.AbstractProtocol start
信息: Starting ProtocolHandler ["ajp-apr-8009"]
九月 10, 2015 5:13:57 下午 org.apache.catalina.startup.Catalina start
信息: Server startup in 35 ms
Connected to server
[2015-09-10 05:13:57,263] Artifact disconf-web:war exploded: Artifact is being deployed, please wait...
九月 10, 2015 5:13:58 下午 org.apache.catalina.loader.WebappClassLoader validateJarFile
信息: validateJarFile(D:\codes\opensource\disconf\disconf-web\target\disconf-web\WEB-INF\lib\servlet-api-2.5.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class
九月 10, 2015 5:14:00 下午 org.apache.catalina.core.ApplicationContext log
信息: No Spring WebApplicationInitializer types detected on classpath
2015-09-10 17:14:02,037 [RMI TCP Connection(3)-127.0.0.1] INFO com.baidu.dsp.common.listener.StartupListener - Load StartupListener start...
2015-09-10 17:14:02,044 [RMI TCP Connection(3)-127.0.0.1] INFO com.baidu.dsp.common.listener.StartupListener - Load StartupListener end...
九月 10, 2015 5:14:02 下午 org.apache.catalina.core.ApplicationContext log
信息: Initializing Spring root WebApplicationContext
2015-09-10 17:14:02,046 [RMI TCP Connection(3)-127.0.0.1] INFO context.ContextLoader (ContextLoader.java:285) - Root WebApplicationContext: initialization started
2015-09-10 17:14:02,142 [RMI TCP Connection(3)-127.0.0.1] INFO support.XmlWebApplicationContext (AbstractApplicationContext.java:510) - Refreshing Root WebApplicationContext: startup date [Thu Sep 10 17:14:02 CST 2015]; root of context hierarchy
2015-09-10 17:14:02,181 [RMI TCP Connection(3)-127.0.0.1] INFO xml.XmlBeanDefinitionReader (XmlBeanDefinitionReader.java:317) - Loading XML bean definitions from URL [file:/D:/codes/opensource/disconf/disconf-web/target/disconf-web/WEB-INF/classes/applicationContext.xml]
九月 10, 2015 5:14:08 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deploying web application directory D:\software\apache-tomcat-7.0.61\webapps\manager
九月 10, 2015 5:14:08 下午 org.apache.catalina.startup.HostConfig deployDirectory
信息: Deployment of web application directory D:\software\apache-tomcat-7.0.61\webapps\manager has finished in 95 ms
2015-09-10 17:14:08,756 [RMI TCP Connection(3)-127.0.0.1] ERROR context.ContextLoader (ContextLoader.java:331) - Context initialization failed
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 24 in XML document from URL [file:/D:/codes/opensource/disconf/disconf-web/target/disconf-web/WEB-INF/classes/applicationContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException; systemId: http://www.springframework.org/schema/mvc/spring-mvc.xsd; lineNumber: 24; columnNumber: 20; cos-all-limited.1.2: An ''all'' model group must appear in a particle with '{'min occurs'}'='{'max occurs'}'=1, and that particle must be part of a pair which constitutes the '{'content type'}' of a complex type definition.
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:399)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:452)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
at com.baidu.dsp.common.listener.ContextListener.contextInitialized(ContextListener.java:21)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5016)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5528)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1779)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:618)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:565)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
九月 10, 2015 5:14:08 下午 org.apache.catalina.core.StandardContext listenerStart
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
严重: Exception sending context initialized event to listener instance of class com.baidu.dsp.common.listener.ContextListener
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 24 in XML document from URL [file:/D:/codes/opensource/disconf/disconf-web/target/disconf-web/WEB-INF/classes/applicationContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException; systemId: http://www.springframework.org/schema/mvc/spring-mvc.xsd; lineNumber: 24; columnNumber: 20; cos-all-limited.1.2: An ''all'' model group must appear in a particle with '{'min occurs'}'='{'max occurs'}'=1, and that particle must be part of a pair which constitutes the '{'content type'}' of a complex type definition.
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:399)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336)
at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1487)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304)
at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181)
at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1328)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217)
at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1420)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188)
at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:848)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:452)
at sun.rmi.transport.Transport$1.run(Transport.java:177)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)
at sun.rmi.transport.Transport$1.run(Transport.java:174)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
at com.baidu.dsp.common.listener.ContextListener.contextInitialized(ContextListener.java:21)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5016)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5528)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at java.lang.Thread.run(Thread.java:745)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
Caused by: org.xml.sax.SAXParseException; systemId: http://www.springframework.org/schema/mvc/spring-mvc.xsd; lineNumber: 24; columnNumber: 20; cos-all-limited.1.2: An ''all'' model group must appear in a particle with '{'min occurs'}'='{'max occurs'}'=1, and that particle must be part of a pair which constitutes the '{'content type'}' of a complex type definition.
at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1779)
at org.apache.xerces.parsers.DOMParser.parse(DOMParser.java:267)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:201)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:76)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadDocument(XmlBeanDefinitionReader.java:429)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:391)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
... 57 more
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:618)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:565)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1487)
at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97)
at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1328)
at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1420)
at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:848)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
at sun.rmi.transport.Transport$1.run(Transport.java:177)
at sun.rmi.transport.Transport$1.run(Transport.java:174)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.xml.sax.SAXParseException; systemId: http://www.springframework.org/schema/mvc/spring-mvc.xsd; lineNumber: 24; columnNumber: 20; cos-all-limited.1.2: An ''all'' model group must appear in a particle with '{'min occurs'}'='{'max occurs'}'=1, and that particle must be part of a pair which constitutes the '{'content type'}' of a complex type definition.
at org.apache.xerces.parsers.DOMParser.parse(DOMParser.java:267)
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:201)
at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:76)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadDocument(XmlBeanDefinitionReader.java:429)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:391)
... 57 more

九月 10, 2015 5:14:08 下午 org.apache.catalina.core.StandardContext startInternal
严重: Error listenerStart
九月 10, 2015 5:14:08 下午 org.apache.catalina.core.StandardContext startInternal
严重: Context [] startup failed due to previous errors
九月 10, 2015 5:14:08 下午 org.apache.catalina.core.ApplicationContext log
信息: Closing Spring root WebApplicationContext
2015-09-10 17:14:08,769 [RMI TCP Connection(3)-127.0.0.1] INFO support.XmlWebApplicationContext (AbstractApplicationContext.java:862) - Closing Root WebApplicationContext: startup date [Thu Sep 10 17:14:02 CST 2015]; root of context hierarchy
2015-09-10 17:14:08,781 [RMI TCP Connection(3)-127.0.0.1] WARN support.XmlWebApplicationContext (AbstractApplicationContext.java:872) - Exception thrown from ApplicationListener handling ContextClosedEvent
java.lang.IllegalStateException: ApplicationEventMulticaster not initialized - call 'refresh' before multicasting events via the context: Root WebApplicationContext: startup date [Thu Sep 10 17:14:02 CST 2015]; root of context hierarchy
at org.springframework.context.support.AbstractApplicationContext.getApplicationEventMulticaster(AbstractApplicationContext.java:344)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:331)
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:869)
at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:836)
at org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:579)
at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:115)
at com.baidu.dsp.common.listener.ContextListener.contextDestroyed(ContextListener.java:16)
at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:5063)
at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5723)
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:160)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1779)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:618)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:565)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1487)
at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97)
at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1328)
at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1420)
at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:848)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
at sun.rmi.transport.Transport$1.run(Transport.java:177)
at sun.rmi.transport.Transport$1.run(Transport.java:174)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
2015-09-10 17:14:08,784 [RMI TCP Connection(3)-127.0.0.1] WARN support.XmlWebApplicationContext (AbstractApplicationContext.java:880) - Exception thrown from LifecycleProcessor on context close
java.lang.IllegalStateException: LifecycleProcessor not initialized - call 'refresh' before invoking lifecycle methods via the context: Root WebApplicationContext: startup date [Thu Sep 10 17:14:02 CST 2015]; root of context hierarchy
at org.springframework.context.support.AbstractApplicationContext.getLifecycleProcessor(AbstractApplicationContext.java:357)
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:877)
at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:836)
at org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:579)
at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:115)
at com.baidu.dsp.common.listener.ContextListener.contextDestroyed(ContextListener.java:16)
at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:5063)
at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5723)
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:160)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1779)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
九月 10, 2015 5:14:08 下午 org.apache.catalina.core.StandardContext listenerStop
严重: Exception sending context destroyed event to listener instance of class com.baidu.dsp.common.listener.ContextListener
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:618)
at org.springframework.context.support.AbstractRefreshableApplicationContext.getBeanFactory(AbstractRefreshableApplicationContext.java:170)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:565)
at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:908)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:884)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:836)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:579)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:115)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
at com.baidu.dsp.common.listener.ContextListener.contextDestroyed(ContextListener.java:16)
at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:5063)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5723)
at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1487)
at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:160)
at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1328)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1420)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:848)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1779)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.lang.reflect.Method.invoke(Method.java:606)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at sun.rmi.transport.Transport$1.run(Transport.java:177)
at java.lang.reflect.Method.invoke(Method.java:606)
at sun.rmi.transport.Transport$1.run(Transport.java:174)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:618)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811)
at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:565)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at java.lang.Thread.run(Thread.java:745)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:301)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1487)
at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97)
at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1328)
at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1420)
at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:848)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
at sun.rmi.transport.Transport$1.run(Transport.java:177)
at sun.rmi.transport.Transport$1.run(Transport.java:174)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)

[2015-09-10 05:14:08,828] Artifact disconf-web:war exploded: Error during artifact deployment. See server log for details.

配置unicode utf8转码异常

配置文件内容传到服务器时会被转码成unicode,下载后使用disconf web包中的CodeUtil.unicodeToUtf8转会utf8,会碰到异常。
如:CHLOÉ会被转成CHLO���value> (Ov中有个特殊符号,贴不上来)
如: COMME DES GARÇONS 被转成COMME DES GAR�S(RS之间有特殊符号)

貌似发现个bug

设置disconf.enable_local_download_dir_in_class_path=false之后, @DisconfFile(filename = "")如果不设置已copy2TargetDirPath,仍会从classpath下面读取 配置。然后找不到。注入不了值,获取不到配置。

数据库脚本没有同步增加字段role_id

PO定义:
@table(db = DB.DB_NAME, name = "user", keyColumn = Columns.USER_ID)
public class User extends BaseObject {

private static final long serialVersionUID = 1L;

// 唯一
@Column(value = Columns.NAME)
private String name;

// token
@Column(value = Columns.TOKEN)
private String token;

// 密码
@Column(value = Columns.PASSWORD)
private String password;

//
@Column(value = Columns.OWNAPPS)
private String ownApps;

/**
 * 角色ID
 */
@Column(value = Columns.ROLE_ID)
private int roleId;
...

}

数据库:
CREATE TABLE user (
user_id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
name VARCHAR(50) NOT NULL COMMENT '姓名',
password VARCHAR(255) NOT NULL COMMENT '密码',
token VARCHAR(255) NOT NULL COMMENT 'token',
PRIMARY KEY (user_id)
)

对于RestfulMgrImpl的疑问

问题1:RestfulMgrImpl
这里用静态变量没有看明白,因为ConfigLoaderUtils的CLASS_PATH是静态初始化的。类被载入的时候就有值了,因为getLocalDownloadFileInClasspath方法中用到。这里是通过什么原理判断这一次是使用classpath的呢?是不是应该用参数中的isTransfer2Classpath呢?

问题2:
在每个获取资源的方法,都是直接取RemoteUrl#getUrls,然后遍历url,但是取到一个之后就直接return了
这里的url是同一个资源分布在不同的url上边吗?

Disconf的配置不能被注入Spring的environment

问题如题,有什么好的解决方法吗?
在Spring中直接使用@Autowired Environment不能获取到disconf托管的配置

目前我是自己重写了Spring的PropertySourcesPlaceholderConfiguer,在加载disconf的配置时候注入Environment,不过这种方法也有缺陷,Environment的初始化在ApplicaitonEnvironmentPrepare的时候,早于Spring的Bean的初始化,这样会导致disconf的配置不能在Environment初始化的时候加载,一些依赖Environment的系统配置不能被加载,例如SpringBoot的server.port。

我的Spring版本是4.1.x,目前的解决方案是把Spring的application.properties放在本地,不使用discount托管!

部署文档好像有点简单

比如tomcat的详细配置。6,7,8每个版本的配置都不太一样,能否说明是在哪个版本下。
比如文档中的 application.demo.properties这些配置文件样例模板在哪copy之类的。

按照部署文档折腾一上午啦。

请问你接受pull request吗? 有几个单元测试的小改动希望采纳

在单元测试中, 你使用了wiremock建了个假服务器, 但是这个URL匹配是很死板的, 比如url/api/config/file?app=disconf_testcase&env=rd&type=0&key=confA.properties&version=1_0_0_0, 有时候你的测试用例中发注的请求url跟上面不一样, 往往是query parameter的顺序不一样, 比如key=key在version=version的后面, 因此url导致不匹配, 假服务器不反回期望的请求.

stubFor(get(urlEqualTo(RemoteMockServer.ITEM_URL))
                    .willReturn(aResponse().withHeader("Content-Type", RemoteMockServer.CONTENT_TYPE).withStatus(200)
                                    .withBody(GsonUtils.toJson(valueVo))));

长话短说, query parameter顺序不一样是因为遍历HashMap的顺序是随机的, 可能在你的环境中恰好这些单元测试都跑过了, 另一种环境就不行了. 我这里的症状是, 在Eclipse的JUnit跑没问题, mvn test 就不行了.

如果接受pull request的话, 我可以做些改动, 尽量减少源代码的改动的情况下解决这个单测的问题. 要动的地方只有RemoteMockServer.javaBaseCoreTestCase.java这两个类

按照disconf-web/README.md部署以后无法登陆

首先,感谢disconf的各位大牛的无私奉献,我的问题RT:

以下是我的部分分析:

我看到登陆请求为:/api/account/signin
那么按照README.md的步骤,nginx负责前端页面请求,tomcat负责后端业务逻辑处理,理论上这个已经是跨域;没有指定完整的请求路径则意味着/api/account/signin和login.html同属一个域,但实际上,两个服务器分别负责前后端则必然是不同的域,起码不可能同时在一个端口上启动监听,所以README.md部署说明和前端AJAX请求看起来是矛盾的。

所以请disconf的设计人员看看,这个是否有问题?

web模块是不是缺少一套缺省的properties的配置文件

lz你好,在disconf-web的部署说明那部分里,说道:

配置文件包括:

  • jdbc-mysql.properties (数据库配置)
  • redis-config.properties (Redis配置)
  • zoo.properties (Zookeeper配置)
  • application.properties (应用配置)

我在想是不是有一套缺省配置的demo,好让大家可以对着properties的key配置自己的环境,
如果没有这样4个示例文件的话,而是自己各自填的话,lz的程序启动时,怎么读取db信息,zk信息,redis信息等等,上群里问了下,没人搭理,只要来提iss,望lz见谅~~~

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.