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

  1. 2009.11.10 Maven 플러그인 설치시 오류
  2. 2009.10.05 JSP 구동시 java.lang.VerifyError 발생
  3. 2009.09.14 Trac과 이클립스 Mylyn플러그인으로 연동하기
Maven 설치하고 작업을 하게 되면 필요한 플러그인을 다운받게 된다.
그러나 프록시 뒤에 있는 경우, 설치상태 그대로는 다운로드가 되지 않아 오류를 뱉어내게 된다.
[INFO] The plugin 'org.apache.maven.plugins:maven-archetype-plugin' does not exist or no valid version could be found
뭐 이런식이다. 

프로식 세팅을 위해
USER_HOME\.m2\settings.xml
(예: C:\Documents and Settings\Administrator\.m2\settings.xml)
파일을 변경해 준다.
<settings>
  <proxies>
   <proxy>
      <active>true</active>
      <protocol>http</protocol>
      <host>XXX.XXX.XXX.XX</host>
      <port>XXX</port>
      <username>XX</username>
      <password>XX</password>
      <nonProxyHosts/>
    </proxy>
  </proxies>
</settings>

host, port에 프록시서버의 정보를 기입하고, username과 password는 없다면 아무것도 채우지 않는다.
설정 사항을 저장하고, 다시 시도하면 성공.

Posted by 영겁회귀
Resin을 콘솔에서 실행시켜서 사용할때는 같은 문제를 본적이 없었지만,
이클립싀 플러그인으로 이클립스 내에서 구동할 경우 다음과 같은 에러를 출력한다.
[13:56:32.858] java.lang.VerifyError: (class: _jsp/_index__jsp, method: _jspService signature: (Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V) Incompatible argument to function
[13:56:32.858] at java.lang.Class.getDeclaredConstructors0(Native Method)
[13:56:32.858] at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
[13:56:32.858] at java.lang.Class.getConstructor0(Unknown Source)
[13:56:32.858] at java.lang.Class.newInstance0(Unknown Source)
[13:56:32.858] at java.lang.Class.newInstance(Unknown Source)
[13:56:32.858] at com.caucho.jsp.JspManager.preload(JspManager.java:302)
[13:56:32.858] at com.caucho.jsp.JspManager.compile(JspManager.java:210)
[13:56:32.858] at com.caucho.jsp.JspManager.createPage(JspManager.java:177)
[13:56:32.858] at com.caucho.jsp.JspManager.createPage(JspManager.java:157)
[13:56:32.858] at com.caucho.jsp.PageManager.getPage(PageManager.java:248)
[13:56:32.858] at com.caucho.jsp.PageManager.getPage(PageManager.java:166)
[13:56:32.858] at com.caucho.jsp.QServlet.getSubPage(QServlet.java:292)
[13:56:32.858] at com.caucho.jsp.QServlet.getPage(QServlet.java:210)
[13:56:32.858] at com.caucho.server.dispatch.PageFilterChain.compilePage(PageFilterChain.java:206)
[13:56:32.858] at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:133)
[13:56:32.858] at com.vine.service.chance.server.EE.DateFilter.doFilter(DateFilter.java:88)
[13:56:32.858] at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
[13:56:32.858] at com.vine.service.chance.server.EE.CustomerFilter.doFilter(CustomerFilter.java:106)
[13:56:32.858] at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
[13:56:32.858] at com.vine.service.chance.server.EE.WapObjectFilter.doFilter(WapObjectFilter.java:53)
[13:56:32.858] at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
[13:56:32.858] at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:173)
[13:56:32.858] at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
[13:56:32.858] at com.caucho.server.hmux.HmuxRequest.handleRequest(HmuxRequest.java:420)
[13:56:32.858] at com.caucho.server.port.TcpConnection.run(TcpConnection.java:514)
[13:56:32.858] at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:520)
[13:56:32.858] at com.caucho.util.ThreadPool.run(ThreadPool.java:442)
[13:56:32.858] at java.lang.Thread.run(Unknown Source)
정상적으로 서비스 되던 소스이기 때문에 소스문제는 아니고.
work 디렉토리의 컴파일된 jsp 소스를 모두 지워보기로 했다. 
/WEB-INF/work 의 .java 파일을 모두 삭제한후 다시 페이지를 열었을때는 해당오류는 발생하지 않았다.
하지만 tag 파일과 tld 파일의 로딩에서 다시 
[14:42:49.718] com.caucho.config.LineConfigException: file:/D:/wwwroot/WEB-INF/tld/header.tld:18: java.lang.NoSuchMethodError: javax.servlet.jsp.tagext.TagAttributeInfo.<init>(Ljava/lang/String;ZLjava/lang/String;ZZ)V
위와 같은 오류가 나타나며 정상적으로 페이지를 열수가 없었다.
TLD파일 관련 오류는 컴파일된 jsp파일을 삭제하여도 없어지지 않았다.

직접적인 해결방법은 얻지 못하였지만 비슷한 케이스중 답변이 달린것중에 클래스패스를 의심해보라는 글이 있어서
클러그인 실행 환경을 변경하여 보았다.
User Entries라 하여 프로젝트에 설정한 클래스패스 또는 직접 jar나 zip을 추가할수 있는 부분에서
프로젝트에서 가져온 default classpath를 삭제하였다.
default classpath를 삭제하고 필요한 프로젝트나 Library를 직접 입력하니 
 java.lang.VerifyError 와 java.lang.NoSuchMethodError: javax.servlet.jsp.tagext.TagAttributeInfo.<init> 모두 발생하지 않아다. jsp도 정상적으로 컴파일된다.

이클립스의 플러그인 환경 뿐아니라 WAS를 콘솔에서 실행키시는 환경에서도 발생할수 있다.
이럴때 클래스패스중 중복된것을 제거하는 등 정리하여보자.

유사한 문제의 다른 해결 방법
http://okjsp.pe.kr/seq/26519


Posted by 영겁회귀
이클립스의 Mylyn 플러그인을 통해 Trac서버와 연동하게 되면, 개발자는 웹페이지를 통해 Trac의 내용을 따로 열람할 필요없이
이클립스 하나로 Trac관련 작업을 모두 할수 있게 된다. 

Trac서버와 Mylyn이 연결되는 방법은 2가지로 HTTP와 XML-RPC 이지만, HTTP방식은 Trac 0.10 버전까지만 지원한다고 하니 xmlrpc 플러그인이 되어있어야 한다.

1) Mylyn 플러그인 이클립스에 설치하기

Eclipse 메뉴바 > Help > Software Updates.. 를 선택하면
설치되어있거나 설치 가능한 업데이트를 찾아 볼수 있는데  협업 도구 도중에 다음 5개를 선택하고
install 한다.


Eclipse Ganymede 버전에서는 기본적으로 Mylyn 플러그인이 딸려온다.
이미 설치되어 있다고 알린후, 업데이트할것이 있으면 업데이트를 시행한다.
동의화면이 나오고 동의를 선택하면 설치/업데이트를 수행한다.

다음으로,
Trac과 Mylyn을 연결하기 위해 필요한 connector를 설치한다.
설치할 플러그인의 URL은
http://download.eclipse.org/tools/mylyn/update/extras/
위와 같다.

Help > Software Updates.. 에서 Available Software 탭에서 'Add Site' 메뉴를 통해
플러그인의 URl을 입력한다.

Mylyn integration > Mylyn Connector:Trac을 설치한다.
 
설치한다.

설치 도중 다음과 같은 에러를 만날 수도 있다.
Cannot complete the request.  See the details.
Cannot find a solution satisfying the following requirements Match[requiredCapability: org.eclipse.equinox.p2.iu/org.eclipse.ui.workbench/[3.4.2.M20090127-1700,3.4.2.M20090127-1700]].
3.4의 플러그인 설치시 가끔 일어난다고 하는 문제로
가장 간단하고 확실한 해결방안은 Ganymede SR2 버전으로 IDE를 교체하는 것이다.
http://www.eclipse.org/downloads/packages/release/ganymede/sr2 에서 sr2 버전으로 IDE를 교체한다.


2) 이클립스에서 Mylyn 플러그인 사용하기

이클립스 메뉴바 > Window > Open Perspective > Planning 선택

Planning Perspective는 로컬 Task나 공유하고 있는 Task등을 관리할수 있는 곳이다.
Trac 서버를 Task Respository로 지정하기 위해서 Query를 하나 작성한다.

Query를 생성하려고 하면 Repository를 선택하여야 한다.
'Add Task Repository..'로 저장소를 새로 등록한다. 

Mylyn Connector : Trac이 설치 되었기 때문에, XML-RPC를 통하여 Trac과 연결할수 있다.

Server의 주소 IP와 Password등을 넣고 연결한다.

연결이 정상적으로 이루어 진다면 새 쿼리 작성이 가능하다.

Task를 조회 할 여러가지 조건이 나타난다.

조건을 설정 검색을 완료하면
조건에 해당하는 Task의 목록을 볼수 있다.

다음은 Task를 생성하는 화면으로, Trac 서버의 웹화면과 동일하다.


마찬가지로, assign, accept, 수정등의 Task와 관련된 모든 작업을 Task list를 통하여 진행할수 있다.



Posted by 영겁회귀