Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / struts / spring integration / 8 сообщений из 8, страница 1 из 1
27.05.2014, 13:19
    #38653181
alex021
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
struts / spring integration
Есть проект на стратс мвц + спринговые инжекшены.
Проблема в том что файл спринга вроде подтягивает проперти но не читает из него ничего..то есть логи в пуле пишутся нулями..null, 0. соответсвенно, пул не инициализируется и тд
может подскажет кто - нибудь в чем проблема? может я где-то не так сконфигурировал что? всю ночь бился на этой фигней , не понимаю в чем проблема, стек трейс примерно такой:
огромно, просто нечеловеческое спасибо тому, кто поможет!
27-May-2014 11:50:18.389 SEVERE [http-nio-8080-exec-4] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'pool' defined in ServletContext resource [/WEB-INF/spring-context.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public static com.epam.testapp.database.pool.ConnectionPool com.testapp.database.pool.ConnectionPool.getInstance() throws java.lang.RuntimeException] threw exception; nested exception is java.lang.IllegalArgumentException
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:444)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:903)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:817)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:440)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4738)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5158)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:702)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:697)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:579)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:455)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1554)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1428)
at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:885)
at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:343)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:301)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:615)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:136)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:74)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1015)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:652)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:222)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1575)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1533)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:744)
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public static com.testapp.database.pool.ConnectionPool com.epam.testapp.database.pool.ConnectionPool.getInstance() throws java.lang.RuntimeException] threw exception; nested exception is java.lang.IllegalArgumentException
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:127)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:435)
... 65 more
Caused by: java.lang.IllegalArgumentException
at java.util.concurrent.ArrayBlockingQueue.<init>(ArrayBlockingQueue.java:254)
at java.util.concurrent.ArrayBlockingQueue.<init>(ArrayBlockingQueue.java:239)
at com.testapp.database.pool.ConnectionPool.initPool(ConnectionPool.java:110)
at com.testapp.database.pool.ConnectionPool.getInstance(ConnectionPool.java:78)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:115)
... 66 more

все файлы лежат в веб-инф.
есть пул соединений
кусок пула
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
public final class ConnectionPool {
    private static ConnectionPool instance = null;
      private static final Lock LOCK = new ReentrantLock();
   private  String driver; //геттер и сеттер соответсвенно 
    private String url;//геттер и сеттер соответсвенно 
    private String user ; //геттер и сеттер соответсвенно 
    private String password; //геттер и сеттер соответсвенно 
    private int poolSize;//геттер и сеттер соответсвенно 
       private BlockingQueue<Connection> freeConnections;
       private ConnectionPool() {
    }
    public static ConnectionPool getInstance() throws RuntimeException {
      returnnew ConnectionPool();
    }
    private void initPool() throws ConnectionPoolException {
        try { 
//some logs 
log.info(poolSize);
log.info(user);
//... и так далее
                       Class.forName(driver);
            freeConnections = new ArrayBlockingQueue<>(poolSize);
                       for (int i = 0; i < poolSize; i++) {
                Connection connection = DriverManager.getConnection(url, user, password);
                freeConnections.add(connection);
            }
        } catch (ClassNotFoundException e) {
          ...
        } catch (SQLException e) {
          ....
        }
    }
}


конфигурация web.xml
web.xml
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">
    <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
            <param-name>config</param-name>
            <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <init-param>
            <param-name>debug</param-name>
            <param-value>2</param-value>
        </init-param>
        <init-param>
            <param-name>detail</param-name>
            <param-value>2</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>  
            <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring-context.xml</param-value>
    </context-param>
    <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>  
</web-app>



конфигуратор стратс
struts-config.xml
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
          "http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
     <form-beans>
     </form-beans>
    <global-exceptions>
        <exception	
            key="error.message"      
            type="java.lang.Exception"
            path="/jsp/error.jsp" />
   </global-exceptions>
   <global-forwards>
   </global-forwards>
      <action-mappings>
     </action-mappings>
   <controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"/>
   <plug-in className="org.apache.struts.tiles.TilesPlugin" >
        <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />      
        <set-property property="moduleAware" value="true" />
    </plug-in>
    <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
        <set-property property="contextConfigLocation" value="/WEB-INF/spring-context.xml"/>
    </plug-in> 
 </struts-config>


спринг конфигуратиор
spring-context.xml
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
<?xml version="1.0" encoding="UTF-8"?>
<beans  
	xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
	http://www.springframework.org/schema/tx 
	http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
	http://www.springframework.org/schema/context 
	http://www.springframework.org/schema/context/spring-context-3.0.xsd">
	
	<bean id="projectPropertyConfigurer"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="location" value="WEB-INF/database.properties" />
	</bean>
	<context:property-placeholder location="WEB-INF/database.properties"/>
	<bean id="pool" class="com.testapp.database.pool.ConnectionPool" destroy-method="closePool" init-method="initPool" factory-method="getInstance">
		<property name="url" value="${database.url}" />
		<property name="user" value="${database.user}" />
		<property name="password" value="${database.password}" />
		<property name="poolSize" value="${database.pool.size}"/>		
		<property name="driver" value="${database.driver}"/>		
	</bean>
</beans>




файл пропертей

Код: xml
1.
2.
3.
4.
5.
database.url=jdbc:mysql://localhost/FacultativeDB
database.user=root
database.password=passw
database.pool.size=2
database.driver=com.mysql.jdbc.Driver

...
Рейтинг: 0 / 0
27.05.2014, 13:27
    #38653196
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
struts / spring integration
1) Попробуйте слеш в начале "/WEB-INF/database.properties"
http://stackoverflow.com/a/6697866/3492708
2) Рассмотрите вариант выноса файла classpath
http://stackoverflow.com/a/5446311/3492708
3) По-хорошему соединение с базой, это конфигурация не вашего приложение, а сервера, где оно установлено.
http://rsdn.ru/forum/java/5620853.1
...
Рейтинг: 0 / 0
27.05.2014, 13:46
    #38653236
alex021
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
struts / spring integration
Blazkowicz,
3-ий вариант сразу отметается. так как по заднию именно так конфигурировать надо.
1) слеш не помог. да и проблема вроде не в том, что файл не видит, а в том что ничего из него не тащит, на соколько я понимаю.
...
Рейтинг: 0 / 0
27.05.2014, 13:51
    #38653250
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
struts / spring integration
alex0213-ий вариант сразу отметается. так как по заднию именно так конфигурировать надо.

То "Есть проект", то "по заданию". Так проект есть или задание? Тогда просто на будущее не забывайте что это верный путь отгрести геморроя при Continuous Integration и деплойменту в целом.


alex0211) слеш не помог. да и проблема вроде не в том, что файл не видит, а в том что ничего из него не тащит, на соколько я понимаю.
Как вы определили в чем именно проблема? Настройте лог на более детальную информацию для "org.springframework." и посмотри что он там про PropertyPlaceholderConfigurer пишет.
Кстати, а зачем в конфиге оба варианта указаны и <context:property-placeholder/> и <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/>
По-моему один какой-то лишний.
...
Рейтинг: 0 / 0
27.05.2014, 14:06
    #38653290
alex021
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
struts / spring integration
проектное задание) задание на самом деле. не полез бы я в дебри первого struts, без задания.

BlazkowiczКак вы определили в чем именно проблема?
когда не видел файл, так и кидал fileNotFound.

про оба варината - один закомменчен в коде.

видимо, действительно, надо настраивать более подробно логирование.
...
Рейтинг: 0 / 0
27.05.2014, 14:11
    #38653299
alex021
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
struts / spring integration
alex021,

попробовал заменить спринг конфиг на

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<?xml version="1.0" encoding="UTF-8"?>
<beans  
	xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
	http://www.springframework.org/schema/tx 
	http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
	http://www.springframework.org/schema/context 
	http://www.springframework.org/schema/context/spring-context-3.0.xsd">
	
	<bean id="pool" class="com.testapp.database.pool.ConnectionPool" destroy-method="closePool" init-method="initPool" factory-method="getInstance">
		<property name="url" value="jdbc:mysql://localhost/FacultativeDB" />
		<property name="user" value="root" />
		<property name="password" value="passw" />
		<property name="poolSize" value="2"/>		
		<property name="driver" value="com.mysql.jdbc.Driver"/>		
	</bean>
</beans>



такой же резульатт. видимо что-то в конфиге намутил я.
...
Рейтинг: 0 / 0
27.05.2014, 14:16
    #38653310
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
struts / spring integration
Интересно. Задлянафига было приводить stacktrace, если падает ваш собственный код?..
Бляха от сандаликов! Так вот в чем дело. У вас криво пул написан, а вы и Spring и Struts приплели зачем-то.
У вас getInstance() вызывает initPool(), который ожидает что свойствам уже заданы значения. А сфига ли они будут заданы, если это только создания экземпляра. А свойства сконфигурируются после создания экземпляра.
...
Рейтинг: 0 / 0
27.05.2014, 14:48
    #38653363
alex021
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
struts / spring integration
BlazkowiczИнтересно. Задлянафига было приводить stacktrace, если падает ваш собственный код?..
Бляха от сандаликов! Так вот в чем дело. У вас криво пул написан, а вы и Spring и Struts приплели зачем-то.
У вас getInstance() вызывает initPool(), который ожидает что свойствам уже заданы значения. А сфига ли они будут заданы, если это только создания экземпляра. А свойства сконфигурируются после создания экземпляра.

У меня слезы радости! Пул был ранее мной написан для работы с jdbc без фреймворков, поэтому там и вызывал так. мда, внимательней надо быть. Спасибо Вам нечеловеческое за время и разъяснение!
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / struts / spring integration / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]