728x90
반응형
728x90
반응형
728x90
반응형

문제가 된 에러 부분은

java.lang.IllegalArgumentException: The main resource set specified [FOLDER_NAME] is not valid

 

Tomcat8에서 새로운 프로젝트의 war를 배포하려고 했으나 어떤 이유에서인지 창이 껴져 버립니다.

원인은 server.xml에 설정된 가상 디렉토리(virtual directory) 폴더가 존재하지 않았기 때문이더군요.

 

에러로그는 아래와 같습니다.

 

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
25-May-2020 14:15:36.431 ?ш컖 [PROJECT_NAME-startStop-1] org.apache.catalina.core.ContainerBase.startInternal A child container failed during start
        java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[PROJECT_NAME].StandardHost[localhost].StandardContext[/uploads]]
                at java.util.concurrent.FutureTask.report(FutureTask.java:122)
                at java.util.concurrent.FutureTask.get(FutureTask.java:192)
                at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:942)
                at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:882)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
                at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1423)
                at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1413)
                at java.util.concurrent.FutureTask.run(FutureTask.java:266)
                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
                at java.lang.Thread.run(Thread.java:748)
        Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[PROJECT_NAME].StandardHost[localhost].StandardContext[/uploads]]
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
                ... 6 more
        Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@72ac4866]
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
                at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4885)
                at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5020)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
                ... 6 more
        Caused by: java.lang.IllegalArgumentException: The main resource set specified [C:\uploads\dym\PROJECT_NAME] is not valid
                at org.apache.catalina.webresources.StandardRoot.createMainResourceSet(StandardRoot.java:748)
                at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:706)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
                ... 9 more
25-May-2020 14:15:36.435 ?ш컖 [main] org.apache.catalina.core.ContainerBase.startInternal A child container failed during start
        java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[PROJECT_NAME].StandardHost[localhost]]
                at java.util.concurrent.FutureTask.report(FutureTask.java:122)
                at java.util.concurrent.FutureTask.get(FutureTask.java:192)
                at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:942)
                at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
                at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
                at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:793)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
                at org.apache.catalina.startup.Catalina.start(Catalina.java:688)
                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:498)
                at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:353)
                at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:493)
        Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[PROJECT_NAME].StandardHost[localhost]]
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
                at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1423)
                at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1413)
                at java.util.concurrent.FutureTask.run(FutureTask.java:266)
                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
                at java.lang.Thread.run(Thread.java:748)
        Caused by: org.apache.catalina.LifecycleException: A child container failed during start
                at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:953)
                at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:882)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
                ... 6 more
        Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[PROJECT_NAME].StandardHost[localhost].StandardContext[/uploads]]
                at java.util.concurrent.FutureTask.report(FutureTask.java:122)
                at java.util.concurrent.FutureTask.get(FutureTask.java:192)
                at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:942)
                ... 8 more
        Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[PROJECT_NAME].StandardHost[localhost].StandardContext[/uploads]]
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
                ... 6 more
        Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@72ac4866]
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
                at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4885)
                at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5020)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
                ... 6 more
        Caused by: java.lang.IllegalArgumentException: The main resource set specified [C:\uploads\dym\PROJECT_NAME] is not valid
                at org.apache.catalina.webresources.StandardRoot.createMainResourceSet(StandardRoot.java:748)
                at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:706)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
                ... 9 more
25-May-2020 14:15:36.437 ?ш컖 [main] org.apache.catalina.startup.Catalina.start The required Server component failed to start so Tomcat is unable to start.
        org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
                at org.apache.catalina.startup.Catalina.start(Catalina.java:688)
                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:498)
                at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:353)
                at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:493)
        Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[PROJECT_NAME]]
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
                at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:793)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
                ... 7 more
        Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[PROJECT_NAME]]
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
                at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
                ... 9 more
        Caused by: org.apache.catalina.LifecycleException: A child container failed during start
                at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:953)
                at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
                ... 11 more
        Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[PROJECT_NAME].StandardHost[localhost]]
                at java.util.concurrent.FutureTask.report(FutureTask.java:122)
                at java.util.concurrent.FutureTask.get(FutureTask.java:192)
                at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:942)
                ... 13 more
        Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[PROJECT_NAME].StandardHost[localhost]]
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
                at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1423)
                at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1413)
                at java.util.concurrent.FutureTask.run(FutureTask.java:266)
                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
                at java.lang.Thread.run(Thread.java:748)
        Caused by: org.apache.catalina.LifecycleException: A child container failed during start
                at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:953)
                at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:882)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
                ... 6 more
        Caused by: java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[PROJECT_NAME].StandardHost[localhost].StandardContext[/uploads]]
                at java.util.concurrent.FutureTask.report(FutureTask.java:122)
                at java.util.concurrent.FutureTask.get(FutureTask.java:192)
                at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:942)
                ... 8 more
        Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[PROJECT_NAME].StandardHost[localhost].StandardContext[/uploads]]
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
                ... 6 more
        Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@72ac4866]
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
                at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4885)
                at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5020)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
                ... 6 more
        Caused by: java.lang.IllegalArgumentException: The main resource set specified [C:\uploads\FOLDER_NAME] is not valid
                at org.apache.catalina.webresources.StandardRoot.createMainResourceSet(StandardRoot.java:748)
                at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:706)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
                ... 9 more
cs

 

 

* 관련글

[tomcat] memory leak 에러 : https://deonggi.tistory.com/26
[Tomcat] 실행에러 : https://deonggi.tistory.com/76
[tomcat] war 배포하기, 가상 디렉토리 : https://deonggi.tistory.com/126

 

 

 

728x90
반응형
728x90
반응형

Tomcat8에서 war 배포시 에러가 났고, 검색해도 원인을 찾지 못했다.

 

에러코드는 아래.

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
25-May-2020 11:03:42.666 ?ш컖 [PROJECT_NAME-startStop-1] org.apache.catalina.core.ContainerBase.startInternal A child container failed during start
        java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[PROJECT_NAME].StandardHost[localhost].StandardContext[/PROJECT_NAME]]
                at java.util.concurrent.FutureTask.report(FutureTask.java:122)
                at java.util.concurrent.FutureTask.get(FutureTask.java:192)
                at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:942)
                at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:882)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
                at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1423)
                at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1413)
                at java.util.concurrent.FutureTask.run(FutureTask.java:266)
                at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
                at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
                at java.lang.Thread.run(Thread.java:748)
        Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[PROJECT_NAME].StandardHost[localhost].StandardContext[/PROJECT_NAME]]
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
                ... 6 more
        Caused by: org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@73b10462]
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)
                at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4885)
                at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5020)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
                ... 6 more
        Caused by: java.lang.IllegalArgumentException: The main resource set specified [D:\webapp_tomcat\PROJECT_NAME-0.0.1-SNAPSHOT] is not valid
                at org.apache.catalina.webresources.StandardRoot.createMainResourceSet(StandardRoot.java:748)
                at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:706)
                at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
                ... 9 more
cs

 

원인은 war 파일명 문제.

tomcat설치폴더\conf\server.xml 에 프로젝트의 docBase에서 지정한 war 파일명을 찾을 수 없다라는 것.

 

정확히는 아래 부분의 이 에러

java.lang.IllegalArgumentException: The main resource set specified [D:\webapp_tomcat\PROJECT_NAME-0.0.1-SNAPSHOT] is not valid

 

 

 

반성하자면.. 난 참 쓸데없는 짓을 했는데. 먼저 tomcat이 돌아가는지 확인했어야 했어....

 

 

* 관련글

[tomcat] memory leak 에러 : https://deonggi.tistory.com/26
[Tomcat] java.lang.IllegalArgumentException: The main resource set specified [FOLDER_NAME] ... : https://deonggi.tistory.com/77
[tomcat] war 배포하기, 가상 디렉토리 : https://deonggi.tistory.com/126

 

 

 

 

728x90
반응형
728x90
반응형

SELECT STREET_BILLTO
FROM TABLE_NAME
 {executed in 0 msec} 
20200428 09:17:55.606 [pool-1-thread-1] INFO j.resultsettable - 
|--------------|
|street_billto |
|--------------|
|--------------|
 
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: java.lang.NullPointerException
### The error may exist in file [\projectfolder\out\production\resources\mapper\TestMapper.xml]
### The error may involve com.test.projectfolder.repository.TestMapper.testNullValue
### The error occurred while handling results
### SQL: SELECT STREET_BILLTO   FROM TABLE_NAME
### Cause: java.lang.NullPointerException
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:77)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446)
at com.sun.proxy.$Proxy65.selectList(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:230)
at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:139)
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:76)
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59)
at com.sun.proxy.$Proxy137.testNullValue(Unknown Source)
at com.test.projectfolder.schedule.ScheduleService.testNullValue(ScheduleService.java:272)
at com.test.projectfolder.schedule.ScheduleEventCron.testEvent(ScheduleEventCron.java:29)
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:498)
at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84)
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: java.lang.NullPointerException
### The error may exist in file [\projectfolder\out\production\resources\mapper\TestMapper.xml]
### The error may involve com.test.projectfolder.repository.TestMapper.testNullValue
### The error occurred while handling results
### SQL: SELECT STREET_BILLTO   FROM TABLE_NAME
### Cause: java.lang.NullPointerException
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:150)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)
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:498)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)
... 21 more
Caused by: java.lang.NullPointerException
at net.sf.log4jdbc.sql.resultsetcollector.DefaultResultSetCollector.methodReturned(DefaultResultSetCollector.java:204)
at net.sf.log4jdbc.sql.jdbcapi.ResultSetSpy.reportAllReturns(ResultSetSpy.java:100)
at net.sf.log4jdbc.sql.jdbcapi.ResultSetSpy.reportReturn(ResultSetSpy.java:192)
at net.sf.log4jdbc.sql.jdbcapi.ResultSetSpy.wasNull(ResultSetSpy.java:2497)
at com.zaxxer.hikari.pool.HikariProxyResultSet.wasNull(HikariProxyResultSet.java)
at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:70)
at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.applyAutomaticMappings(DefaultResultSetHandler.java:520)
at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:401)
at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:355)
at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:330)
at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:303)
at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:196)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)
at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63)
at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:326)
at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)
... 27 more

 

 

해당 쿼리는 실행시 문제가 없다.

다만, mybatis를 통하기만하면 이런 에러가 난다.

그래서 문제 없이 조회한 컬럼들과 비교해 보니 해당 컬럼에서는 null인 값들이 있다.

그래서 널인 경우 처리를 해주었더니 해결.

 

SELECT 

ISNULL(STREET_BILLTO, '') as STREET_BILLTO
FROM TABLE_NAME

 

728x90
반응형
728x90
반응형

ListView내의 item을 클릭 했을때의 이벤트(OnItemClickListener)가 작동하지 않는 경우

확인할 것은 포커스가 가능하거나 클릭이 가능한 View가 item layout 파일내에 있는지 확인해야 합니다.

예를들면, EditText, CheckBox 같은 것들이죠.

 

이 경우 해당 View로 포커스가 가는 문제를 막아주면 됩니다.

item을 작성한 layout 파일에서 감싸고 있는 Layout에

android:descendantFocusability="blocksDescendants" 를 넣어주면 됩니다.

 

 

출처 : https://stackoverflow.com/questions/5551042/onitemclicklistener-not-working-in-listview

 

OnItemCLickListener not working in listview

Activity class code: conversationList = (ListView)findViewById(android.R.id.list); ConversationArrayAdapter conversationArrayAdapter=new ConversationArrayAdapter(this, R.layout.

stackoverflow.com

 

728x90
반응형
728x90
반응형

<CheckBox
android:id="@+id/checkBox1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/my_innerMargin"
android:drawableRight="?android:attr/listChoiceIndicatorMultiple"
android:button
="@null"
android:text="CheckBox" />

728x90
반응형
728x90
반응형

공부하는 도중 까먹지 않이 위한 메모 입니다. 정답이 아닐수도 있으니 참고하세요.

 

 

editText가 있는 화면으로 editText가 가장 높은 영역을 차지하길 바란다.

하지만 특정한 높이를 지정해 준다면 디바이스에 따라 다른 뷰가 화면 밖으로 밀려날 수 있다.

이에 디바이스의 높이에 따라 자동으로 높이를 지정해 주고 싶었다.

 

빨간색 화살표 영역이 다바이스 높이와 관계 없이

textView, button 마진 등등의 높이를 제외한 영역을 차지 하도록 하고 싶은것.

 

이때 사용하는 속성이 layout_weight

4개의 뷰에 모두 똑같이 1로 준다면, 높이가 1:1:1:1 이되는 거다.

 

그래서 이 경우는 editText에만 1주면된다.

728x90
반응형
728x90
반응형

알고는 있었지만 오늘 30분간 삽질하게 한 실수다.

1
2
3
4
5
6
7
for (int i=0; i< list.size(); i++) {
    if(Utils.isNull(list.get(i).getOrginNm())) {
        logger.info("index : "+i+" delete VO : " +list.get(i).toString());
        list.remove(i);
    }
    else logger.info("index : "+i+" not delete VO : " + list.get(i).toString());
}
cs

이걸 실행하면 원하는 결과를 얻을 수 없다.

 

원인은 list.remove(i) 를 하면서 하나가 삭제되면서 index가 달라지기 때문이다.

시작 시 list.size()가 10였는데 하나를 remove 하면 list.size()는 9이 될테니

 

1. 반복문의 실행 횟수가 의도하지 않게 변하게 되고

2. remove(i)에 사용되는 index 값에도 문제가 될 것이다.

 

또 실수할테지만.. 다음엔.. 삽질은 짧게 하자.. 

 

* 관련글

[java] ArrayList.remove(Integer index) 사용시 이상 : https://deonggi.tistory.com/152

 

728x90
반응형
728x90
반응형
1
2
3
4
5
6
SELECT membr_seq, book
    FROM (SELECT membr_seq, book
            , ROW_NUMBER() OVER(PARTITION BY membr_seq ORDER BY dt DESC) rn
        FROM book_t
    )
WHERE rn = 1
cs

 

ROW_NUMBER() OVER(PARTITION BY membr_seq ORDER BY dt DESC) rn  
membr_seq별로 dt의 내림차순으로 번호를 매겨서
번호의 1을 조회한다.

728x90
반응형

+ Recent posts