powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / struts / spring integration
8 сообщений из 8, страница 1 из 1
struts / spring integration
    #38653181
alex021
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть проект на стратс мвц + спринговые инжекшены.
Проблема в том что файл спринга вроде подтягивает проперти но не читает из него ничего..то есть логи в пуле пишутся нулями..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
struts / spring integration
    #38653196
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
struts / spring integration
    #38653236
alex021
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
3-ий вариант сразу отметается. так как по заднию именно так конфигурировать надо.
1) слеш не помог. да и проблема вроде не в том, что файл не видит, а в том что ничего из него не тащит, на соколько я понимаю.
...
Рейтинг: 0 / 0
struts / spring integration
    #38653250
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex0213-ий вариант сразу отметается. так как по заднию именно так конфигурировать надо.

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


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

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

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

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

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


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