AppFuseSupport_ko |
|
Your trail: |
이것은 AppFuse에 관련된 질문들의 목록이다. 당신은 AppFuse Tutorials 과 StrutsResume Support 페이지를 통해서도 유사한 내용을 볼수 있다. 저장된 메일링 리스트 나 AppFuse IRC channel 또한 도움이 될것이다.
목차
- 공통적인 질문들
- AppFuse를 사용한 개발
- 보안관련 질문들
- Struts에 관련된 방법
- 데이터베이스 질문과 방법
- 애플리케이션 서버 질문과 방법
- Anthill과 CruiseControl 사용하기
- Hibernate에 관련된 질문들
- 오래된 질문들
공통적인 질문들
- UserForm.java 파일은 Ant를 사용하여 XDoclet에 의해 생성된다. 만약 당신이 "ant compile"를 수행한다면, 이것은 build/web/gen/org/appfuse/webapp/form에 생성될것이다.
- 이 글이 이것을 가장 잘 설명하고 있다.
- 이 위키가 AppFuse에 대한 질문을 요청하기 위한 곳인가.?
- 물론이다. 하지만 당신은 포럼이나 메일링 리스트를 통해서 좀더 직관적이고 입력가능할것이다. 또한 이 위키는 스패머때문에 최근에 잠겨있다. 그래서 당신은 글을 포스팅하기 위해서는 나로부터 아이디와 비밀번호를 얻어야 할 필요가 있다. 저장된 메일링 리스트 가 굉장히 좋은 자료인것도 잊지 말라.
- 왜 내가 "Cannot create JDBC driver of class ' ' for connect URL 'null'" 와 같은 에러를 보게 되는가.?
- 당신이 잊고 수행하지 않은 작업은 "ant setup-tomcat" 이다(또는 데이터베이스가 제대로 셋업될 필요가 있다면 "ant setup"). 또한 당신이 Tomcat를 사용한다면 가장 최신의 추천되는 버전 인지를 확인해보라.
- 왜 내가 "build.xml:1037: taskdef class org.apache.catalina.ant.ReloadTask cannot be found" 와 같은 에러를 보게 되는가.?
- Ant가 $CATALINA_HOME\server\lib\catalina-ant.jar 파일내 ReloadTask를 찾을수 없는 것이다. 당신은 환경변수인 CATALINA_HOME(윈도우즈 디렉토리면 %CATALINA_HOME% , 유닉스라면 $CATALINA_HOME)가 tomcat설치 디렉토리를 가리키는지 확인할 필요가 있다. 이 에러는 당신이 쌍따옴표로 path를 감쌀때 발생할수도 있다(예를 들어 CATALINA_HOME="c:\Tomcat 5.5" 라고 셋팅되어 있다면 쌍따옴표를 제거하라.)
- build.properties와 properties.xml파일을 어떻게 맞추는가.?
- Ant는 변경할수 없는 프라퍼티를 가진다. 프라퍼티가 처음에 셋팅된다면, 이것은 변경할수 없다. 이것은 AppFuse에서 프라퍼티들을 셋팅하는 방법의 순서이다.
command-line using -Dproperty=value
~/.appname-build.properties
~/.build.properties
build.properties
properties.xml (or build.xml) - wherever it's used''
- 팀으로 작업할때, 특정 테이블에서만 db-load작업을 사용하여 특정 POJO를 테스트하는 방법은 무엇인가.?
- 첫번째, 모든 sample-data.xml파일을 사용하는 대신에, sample-person.xml이라는 이름의 파일을 생성한다. 그리고 입력을 원하는 데이터를 그 파일에 적는다. 그리고 나서 다음의 명령을 수행한다.
ant test-dao -Dtestcase=PersonDao -Dfile=metadata/sql/sample-person.xml
AppFuse를 사용한 개발
- 당신의 개발 환경을 셋업하기 위한 방법. 이것은 내가 새로운 컴퓨터에서 빌드할때 대개 사용하는 방법이다. 이것은 환경변수, 다운로드, 애플리케이션을 설치하는 위키등등을 포함한다.
- 중요한 ant task는 무엇인가.? 그리고 task들은 무엇을 하는가.?
- AppFuseAntTasks를 보라.
보안관련
- appfuse를 사용하여 NTLM인증을 사용하기 위한 방법은 무엇인가.? jCIFS를 사용하여, Tomcat에서의 NTLM인증을 사용하기 위해 jcifs.http.NtlmHttpFilter를 사용할수 있다. Matt.. 당신은 AppFuse와 통합될수있다면 몇몇 지침을 줄수 있는가.?
- 이것은 Tomcat에서 NT도메인과 통신을 하기 위한 Andy Armstrong의 JAAS Login Modules을 사용하는 방법이다. 오래전부터 사용해왔지만 아직도 여전히 잘 작동한다. 나는 jCIFS에 대해 경험해본적이 없다. 하지만 당신이 이것을 사용해서 작업한다면 나에게 알려주길 바란다. 나는 위키에 이것을 위한 문서를 작성하도록 당신을 돕게 되길 바란다. ~ Matt
Struts에 관련
- JSTL키워드인 'empty'는 왜 작동하지 않는가.?
- empty 키워드는 java.util.List, java.util.Map, 문자열과 배열에서만 작동한다. java.util.Set과 같은 집합은 지원되지 않는다. 만약 당신이 이전의 JSP2.0를 사용하고 Set이 empty이거나 사용하지 않는지 테스트하길 원한다면 :
<c:if test="${mycollection['empty']}">.
내가 발견한 이 문제를 위한 가장 믿을만한 작업상황은 다음을 사용하는 것이다.
<c:forEach items="${mycollection}" var="element" varStatus="rowNum">
<c:if test="${rowNum.count==1}">
<table>
<tr> <th> Value Header </th> </tr>
</c:if>
<tr>
<th>
<c:out value="${element.value}"/>
</th>
</tr>
<c:if test="${rowNum.last}">
</table>
</c:if>
</c:forEach>
이 글은 이것을 좀더 상세하게 설명한다. 만약 당신이 tomcat 5를 사용한다면, 이것은 JSP2.0을 지원하기 때문에 이 문제를 겪지 않을것이다.
데이터베이스 관련
- 나는 MySQL데이터베이스 생성을 시도할때 "access denied" 에러가 발생한다.
- 이 이슈는 당신이 Unix에서 작업을 수행하거나 root비밀번호를 변경했을때 주로 발생한다. 이를 해결하기 위해 이 페이지를 보라.
- 내가 MySQL데이터베이스에 대해 테스트를 시도할때 "Illegal mix of collations" 에러가 발생한다.
- MySQL 4.1.7+은 당신에게 AppFuse에서 유니코드 지원을 받기 위해 UTF-8로 디폴트 문자셋을 추가하도록 요구한다. 이 작업을 수행하기 위해 c:\Windows\my.ini 나 /etc/my.cnf 파일에 다음을 추가하면 된다.
[mysqld]
default-character-set=utf8
- 나는 트랜잭션내 예외가 던져지고 롤백이 아무것도 발생하지 않는 메소드가 있다. 무엇때문인가.?
- MySQL의 디폴트 테이블인 MyISAM은 디폴트로 트랜잭션을 지원하지 않는다. 트랜잭션 지원을 위해서 c:\Windows\my.ini 나 /etc/my.cnf 파일에 다음 셋팅을 추가하거나 변경하라. 당신은 PostgreSQL또한 사용할수 있다.
[mysqld]
default-storage-engine=innodb
NOTE: 당신은 설정파일내 default-storage-engine의 동의어인 default-table-type을 보게 될수도 있다. 그렇다면, 그 파라미터값을 innodb로 셋팅하라.
- MySQL Administrator는 MySQL을 관리하고 모니터링하기 위한 좋은 도구이다.
- 나는 suse리눅스 9.2에서 MySQL을 사용할때 문제가 발생한다.
- MySQL 3.1.5 JDBC 드라이버 (혹은 그 이상의 버전) 으로 업그레이드하면 이것은 해결된다.
- AppFuse는 다중 데이터베이스와 통신할수 있는가.?
- 내가 데이터베이스에 대한 변경사항을 감시할수 있는가.?
- 내가 test-dao를 실행할때 "Could not synchronize database state with session" 예외가 발생한다.
- key를 가진 클래스가 버전이나 시각(timestamp)프라퍼티를 선언하지 않는다면, saveOrUpdate()와 종속적인 작업을 수행하기는 더 어렵다. 당신은 여기서 언급된것처럼 사용자정의 Hibernate인터셉터를 사용해야만 할것이다. (반면에, 당신이 saveOrUpdate()대신에 명시적으로 save()와 update()를 사용한다면, Hibernate는 일시적이고 독립된 인스턴스사이의 구별이 필요하지 않을것이다. 그래서 당신은 이 충고를 별 문제 없이 무시할수 있다. ) 복합 key는 같은 생각을 확장한다. {Hibernate in Action의 333페이지}
- Spring관리 DataSource대신에 JNDI DataSource를 사용하는 방법.? (1.9+):
- metadata/conf/tomcat-context*.xml 에서, JNDI DataSource 셋팅의 주석을 제거한다. web/WEB-INF/applicationContext-resources.xml파일내 JNDI "dataSource" bean의 주석을 제거하고 활성화된 "datasource" bean을 삭제한다. 만약 프로젝트에 이 설정을 영구히 적용하길 원한다면, 당신은 lib/jakarta-commons 로부터 commons-dbcp.jar 와 commons-pool.jar를 삭제해도 무방하다.
애플리케이션 서버 관련
- AppFuseOnOrion를 보라. - Orion은 Oracle AS에 내장된 서버이다.
지속적인 통합
Hibernate에 관련 질문들
NOTE: * Hibernate 한글 문서가 좋은 자료이다..
- Lazy 초기화에 대해서 쓴 Karl Baum의 글을 보라. 특히, Being Lazy in your Unit Tests 부분을 보라.
- *.hbm.xml파일을 생성하기 위해 XDoclet를 사용하는가.? 하나의 hbm.xml파일을 덮어쓰고 직접 이 파일을 생성하는 것도 가능하가.?
POJO에서 @hibernate.class를 사용한다면, hibernatedoclet은 build/dao/gen에 맵핑파일을 생성할 것이다. 만약 src/dao/**/model/*디렉토리에서 당신이 사용하는 POJO를 위한 맵핑파일(*.hbm.xml)을 사용한다면, 생성된 버전으로 덮어쓰일것이다. 만약 두개의 충돌에 대해 걱정하고 싶지 않다면, 당신의 POJO내 @hibernate.class로부터 @ 문자를 제거하고 model디렉토리에 당신의 hbm.xml파일을 두라.
build.xml변경은 필요하지 않다. "package-dao" target은 다음의 맵핑파일을 포함할것이다.
<copy todir="${build.dir}/dao/gen">
<fileset dir="src/dao" includes="**/*.xml" excludes="**/*-${dao.type}.xml"/>
<filterset refid="variables.to.replace"/>
</copy>
hibernatedoclet처리를 제거하길 원하다면, 그렇게 할수 있지만 먼저 확인하고 실행하라. 그리고 나서 생성된 hbm.xml파일 모두를 당신의 model디렉토리에 복사하라.
오래된 질문들 (더이상 가치가 없는)
|