'웹개발(JSP&Servlet)/개발하면서GET'에 해당되는 글 57건

  1. 2009.11.24 Eclipse 에서 Subversion Repository에 연결시 403
  2. 2009.11.20 Maven 플러그인 생성 과정
  3. 2009.11.10 Maven SQL Plugin 사용시 JDBC Driver 찾지 못하는 문제

eclipse에 Subversion관련 플러그인을 설치한후, 저장소에 연결하려 하였다.



연결정보를 입력후, 연결을 시도하면

403 오류가 발생한다. 해당 자원에 대해서 자원이 없다는 소리인데.

처음 체크해 볼것은 환경설정 파일들 
먼저 Apache의 httpd.conf파일의 가상호스트 설정부분 (<VirtualHost>)
 <Location /svn>
        DAV svn
        SVNParentPath "D:\MyDev\Repository"
        AuthzSVNAccessFile "D:\MyDev\Repository\authz"

        AuthType Basic
        AuthName "Subversion Repository"
        AuthUserFile D:\MyDev\Repository\htpasswd
        Require valid-user
 </Location>

SVNParentPath 항목이 이름에서 보듯이, 저장소로 사용할 디렉토리의 '상위 디렉토리' 경로를 적어야 한다.
다음으로 SVN을 실행할때의 디렉토리 지정.

d:\MyDev\svn-win32-1.6.5\bin\svnserve.exe -d -r D:\mydev\repository\mywebproject

모든 설정 파일이 이상이 없다면, 네트워크 설정을 살펴본다.



프록시를 사용하기 때문에 프록시 설정을 살펴봄.
이클립스의 Preference에서 사용중이 프록시 설정이 그대로이고,
404 Forbidden 인데 프록시와 관계 있나 싶었지만 일단 로컬IP대역을 프록시에서 제거함.


프록시를 제거해 주자. SVN Repository에 연결이 성공함.


연결실패 원인이 403 인 이유는 무엇일까..



Posted by 영겁회귀
Maven에서는 Archetype으로 플러그인을 만들수 있다고 한다.
다음은 Autodeploy라는 플러그인을 작성하는 챕터를 따라한 기록이다.

플러그인의 동작은 다음과 같다.
1. Tomcat을 중지
2. 기존에 deploy 되어있는 소스를 삭제
3. deploy시킬 프로젝트의 소스를 복사
4. Tomcat을 다시 구동

플러그인을 작성 과정은 다음과 같다.
mvn archetype:generate -DgroupId=pe.lucene.deploy
-DartifactId=maven-autodeploy-plugin
-DarchetypeGroupId=org.apache.maven.artietypes
-DarchetypeArtifactId=maven-archetype-mojo
groupId : 작성할 플러그인의 패키지로 쓰인다.
artifactId : 플러그인의 이름으로 쓰인다.

플러그인을 단위 테스트하기 위해서 JUnit로 테스트 하도록 한다.
@Test public void autodeploy() throws MojoExecutionException {
AutoDeployMojo  autoDeploy = new AutoDeployMojo();
autoDeploy.catalinaHome = "D:/was/apache-tomcat-5.5.26";

autoDeploy.execute();
}
플러그인의 설치는
mvn install 
로 수행한다. 결과는 오류 발생
junit 테스트를 위한 @Test annotation이 에러로 잡힌다. 1.5 이상에서만 지원된다고 한다.
pom.xml에 maven-compiler-plugin에 대한 사항을 추가한다.
01 <build>
02     <plugins>
03       <plugin>
04         <artifactId>maven-compiler-plugin</artifactId>
05         <configuration>
06           <source>1.5</source>
07           <target>1.5</target>
08         </configuration>
09       </plugin>
10     </plugins>
11   </build>
source를 1.5로 세팅하니 문제해결.

두번째 문제,

플러그인 프로젝트의 pom.xml에 junit를 선언했고, 의존성에 의해 다운로드까지 받아지는데 
플러그인 설치시에 찾지 못한다.
junit-3.8.1.jar 를 MAVEN_HOME'/lib에 복사후 다시 설치한다.
에러는 그대로고, 
로컬의 저장소를 모두 지우고 다시 실행하니, 
jar파일이 받아지지 않고 .pom 파일만 받아지고 있는 상황. < 아직 해결 못함 > 


Posted by 영겁회귀
6장 Maven을 이용한 빌드 자동화 ⅱ 
01. SQL 플러그인으로 데이타베이스 통합하기 

실행도중 해결하지 못한 문제다.
SQL 플러그인으로 개발 과정에서의 데이타 베이스 관련 문제를 해결할수 있는 방편중 하나이다.
테스트/개발 기간에 사용하는 데이타베이스를 프로젝트를 Deploy하는 시기에 초기화를 하는 과정이었다.

JDBC Driver를 찾지 못하는 문제가 계속 발생하였다.

1. Local Repository 검색
pom.xml에 의해 선언된 라이브러리는 Repository에 저장되게 되는데
그 위치는 MAVEN_HOME의 settings.xml에 선언된다. 
  <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ~/.m2/repository
     <localRepository>D:\MyDev\MavenRepository_test</localRepository>
  -->
     <localRepository>~/.m2/repository</localRepository>
유저 홈디렉토리에 저장되게 되는데 XP라서 C:\Documents and Settings\Administrator\.m2 디렉토리에 저장되게 되는데, 공백이 들어가서 문제가 생기나 싶어서, 다른 디렉토리로 변경하여 빌드해봄.
<localRepository>D:/MyDev/MavenRepository</localRepository>
결과는 동일함. mysql을 사용했었는데 connector를 찾지 못함.

2. pom.xml 설정 체크 및 변경
<project>
...
   <dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.0.5</version>
<scope>compile</scope>
<systemPath>D:/MyDev/MavenRepository_test/mysql/mysql-connector-java/5.0.5/mysql-connector-java-5.0.5.jar</systemPath>
</dependency>
   </dependencies>
...
</project>
프로젝트 엘리먼트 자식엘리먼트로 <dependencies>아래 설정하고 
  <properties>
<jdbc.host>localhost</jdbc.host>
<jdbc.driver>com.mysql.jdbc.Driver</jdbc.driver>
<jdbc.dbname>mywebproject</jdbc.dbname>
<jdbc.username>root</jdbc.username>
<jdbc.password>vudghkfmf</jdbc.password>
  </properties>
로 <properties>에서 정의하고 <plugin>에서 불러다 사용하는 것으로 되어있었지만,
Maven 사이트의 예제대로 변경.
다음이 Maven예제 스타일.
<plugin>
.....
  <configuration>
          <driver>com.mysql.jdbc.Driver</driver>
          <url>jdbc:mysql://${jdbc.host}/${jdbc.dbname}</url>
          <username>${jdbc.username}</username>
          <password>${jdbc.password}</password>
  </configuration>

   <executions>
<execution>
<id>process-test-resources</id>
<phase>process-test-resources</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<driver>${jdbc.driver}</driver>
<url>jdbc:mysql://${jdbc.host}/mysql</url>
<sqlCommand>drop database ${jdbc.dbname}</sqlCommand>
<autocommit>true</autocommit>
<onError>continue</onError>
</configuration>
</execution>
...
<plugin>의 하위 엘리먼트로 <configuration> 엘리먼트에서 DB url, 계정, 패스워드등을 설정하는 스타일로 변경.

하지만, build시 오류는 계속 발생함.

3. 구글링 결과
비슷한 케이스를 검색한 결과, MAVEN_HOME/lib에 jdbc 드라이버를 넣고 빌드하는 경우는 오류가 나지 않았다.
같은 방법으로 로컬 저장소에 있는 jar파일을 복사하여 빌드하니 빌드가 이루어짐.
의문점은 의존성(dependency)을 정의하여 필요한 라이브러리를 다운로드 할수 있는데, 왜 Driver 클래스를 찾을수 없다고 나오는지 의문임. 의존성에 따라서 다운받은 jar파일을 사용하면 될것아닌지....

ps.
..참 따라하기 힘든 책이다 ㅋㅋ. 환경이 변하고, 버전이 업되기 때문에 따라하는데 오류 속출...



Posted by 영겁회귀