1. Preferences > Web > JSP Files > Validation

화면의 [Validating files]의 Validate JSP fragments 체크 박스 해제 후 Apply 버튼 클릭

 

2. Preferences > Validation

[HTML Syntax Validator, JSP Content Validator, JSP Syntax Validator, XML Schema Validator, XML Validator] 등에 대한 Build 항목의 체크 박스 해제 후 Apply 버튼 클릭

 

Posted by 테리
:

주의 : Eclipse에 프로젝트를 생성하기 전인 초기 설정임!

파일 인코딩 설정

General > Content Types > Text > [Default encoding:] 에 UTF-8 입력 후 Update 버튼 클릭

 

Text file encoding UTF-8로 설정

General > Workspace > [Text file encoding] 을 UTF-8 설정 후 Apply 버튼 클릭

 

Web -> CSS Files -> Encoding 변경

[Encoding:] 을 UTF-8로 선택한 후 Apply 버튼 클릭

 

Web -> HTML Files -> Encoding 변경

[Encoding:] 을 UTF-8로 선택한 후 Apply 버튼 클릭

Web -> JSP Files -> Encoding 변경

[Encoding:] 을 UTF-8로 선택한 후 Apply 버튼 클릭

 

XML -> XML Files -> Encoding 변경

[Encoding:] 이 UTF-8인지 확인이 필요

 

General → Editors → Text Editors → Spelling에서 Encoding을 MS949에서 UTF-8로 변경

[Encoding:] 의 Default가 UTF-8인지 확인이 필요

 

Posted by 테리
:

1. 자바로 GIT 다운로드 프로그램을 작성하다 나온 에러임

2. 해당 에러는 Eclipse 동작에서 나오는 에러로 검색이 되지만, 
    GIT의 사용자 정보인 id 또는 password가 상이할 때에도 나오는 에러

 

 

'개발 > Git' 카테고리의 다른 글

GitHub 토큰 발급 방  (0) 2022.10.25
원격 저장소에 디렉토리 삭제  (0) 2022.09.22
error: pathspec 'test1' did not match any file(s) known to git  (0) 2022.09.22
GibHub?  (0) 2021.12.03
Posted by 테리
:

1. git$ git rm --cached -r directory_name
    or
    git$ git rm --cached file_name

2. git commit -m "delete directory"

3. git push origin branch_name

 

3번 부분을 진행하지 않으면 원격 저장소에 반영이 되지 않는다.

'개발 > Git' 카테고리의 다른 글

GitHub 토큰 발급 방  (0) 2022.10.25
java cannot open git-upload-pack  (0) 2022.09.26
error: pathspec 'test1' did not match any file(s) known to git  (0) 2022.09.22
GibHub?  (0) 2021.12.03
Posted by 테리
:

Git 명령어로 생성된 브랜치로 옮길 때 에러 발생

현상 : 

1. Git Bash 에서 새로운 브랜치로 push할 디렉토리로 이동

2. [git]$ git init

3. [git]$ git remote add url

4. gitlab 웹 페이지에서 브랜치  'test1' 생성

5. [git]$ git checkout new_branch

error: pathspec 'test1' did not match any file(s) known to git

 

조치 방안 :

1. [git]$ git remote update

2. [git]$ git fetch

3. [git]$ git checkout test1

 

 

'개발 > Git' 카테고리의 다른 글

GitHub 토큰 발급 방  (0) 2022.10.25
java cannot open git-upload-pack  (0) 2022.09.26
원격 저장소에 디렉토리 삭제  (0) 2022.09.22
GibHub?  (0) 2021.12.03
Posted by 테리
:

매번 잊어먹어서 내 블러그에 정리하고자 작성함.

 

1. 이클립스의 프로젝트에서 마우스 우측 버튼 클릭 > Team > Share Project... 클릭

 

2. SVN을 선택하고 Next 버튼을 클릭

 

3. "Create a new repository location"을 선택하고 Next 버튼을 클릭

 

4. URL은 "프로젝트 이름으로 추가되는 상위 주소까지"를 입력하고 사용자 계정을 입력한 후 Next 버튼을 클릭

 

5. URL 주소가 정확한지 확인한 후 Next 버튼을 클릭

 

6. 프로젝트 추가에 따른 주석을 확인한 후 Finish 버튼을 클릭

 

7. commit 로그를 남긴 후 OK 버튼을 클릭

Posted by 테리
:

윈도우즈의 서비스로 등록한 톰캣을 시작한 후 "catalina.시작일자.log"를 살펴보면 다음과 같은 오류가 발생할 때가 있다.

월 11, 2022 5:24:49 오후 org.apache.catalina.session.StandardManager doLoad
심각: IOException while loading persisted sessions: java.io.StreamCorruptedException: invalid type code: 00
java.io.StreamCorruptedException: invalid type code: 00
   at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1677)
   at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2365)
   at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:612)
   at java.lang.Throwable.readObject(Throwable.java:915)
   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 java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1185)
   at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2256)
   at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2147)
   at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1646)
   at java.io.ObjectInputStream.readObject(ObjectInputStream.java:482)
   at java.io.ObjectInputStream.readObject(ObjectInputStream.java:440)
   at org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1587)
   at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:1075)
   at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:259)
   at org.apache.catalina.session.StandardManager.load(StandardManager.java:176)
   at org.apache.catalina.session.StandardManager.startInternal(StandardManager.java:465)
   at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
   at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5714)
   at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
   at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:1018)
   at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:994)
   at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
   at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1296)
   at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:2039)
   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
   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)

7월 11, 2022 5:24:49 오후 org.apache.catalina.session.StandardManager startInternal
심각: Exception loading sessions from persistent storage
java.io.StreamCorruptedException: invalid type code: 00
   at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1677)
   at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2365)
   at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java:612)
   at java.lang.Throwable.readObject(Throwable.java:915)
   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 java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1185)
   at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2256)
   at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2147)
   at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1646)
   at java.io.ObjectInputStream.readObject(ObjectInputStream.java:482)
   at java.io.ObjectInputStream.readObject(ObjectInputStream.java:440)
   at org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1587)
   at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:1075)
   at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:259)
   at org.apache.catalina.session.StandardManager.load(StandardManager.java:176)
   at org.apache.catalina.session.StandardManager.startInternal(StandardManager.java:465)
   at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
   at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5714)
   at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
   at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:1018)
   at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:994)
   at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
   at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1296)
   at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:2039)
   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
   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)

 

이때는 설정값을 변경하는 것도 있지만, ~CATALINA/work/Catalina/localhost 디렉토리에 위치한 모든 정보들을 삭제하고, 서비스를 재시작 또는 중지한 후에 시작을 하면 위와 같은 에러 로그는 출력되지 않는다.

Posted by 테리
:

해결은 -Dfile.encoding=UTF-8 이였다. (간단한 거)

    --JvmOptions "-Dcatalina.home=%CATALINA_HOME%;-Dcatalina.base=%CATALINA_BASE%;-D%ENDORSED_PROP%=%CATALINA_HOME%\endorsed;-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties;-Dfile.encoding=UTF-8;%JvmArgs%" ^

 

보통 사이트는 대부분 리눅스 또는 유닉스 환경이다.

 

이번에 특정 사이트가 윈도우 서버이기에 연구소 설치 담당자가 작성한 윈도우 서비스 설치 가이드대로 설치가 되었으나, 데이터를 받으면 이상하게 한글이 깨지는 현상이 발생하였다.

이미 다른 사이트를 통해서 윈도우 서버에 윈도우 서비스로 등록을 하여 데이터에 대한 한글이 깨지지 않음을 확인이 되었기에 살짝 황당하였다.

그래서 기존의 내가 알고 있는 방식으로 톰캣의 인코딩 설정 정보를 확인 및 추가해 보았으나 해결 방안이 되지 못한 상태로 지난 주를 마무리를 지었다.

그래서 한번 더 확인을 해 본 결과 JvmOptions에 -Dfile.encoding=UTF-8 옵션을 추가하는 방법이 있어서 service.bat의 JvmOptions의 맨 마지막에 위와 같은 옵션을 추가를 하였으나, 여전히 데이터의 한글은 깨져서 도출이 되었다. (-Dfile.encoding=UTF-8 옵션은 알고는 있었으나 무작적 옵션의 맨 마지막에 추가를 했던 거이였다. 하기와 같이)

    --JvmOptions "-Dcatalina.home=%CATALINA_HOME%;-Dcatalina.base=%CATALINA_BASE%;-D%ENDORSED_PROP%=%CATALINA_HOME%\endorsed;-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties;%JvmArgs%;-Dfile.encoding=UTF-8" ^

 

이에 옆 동료(이전 회사에서 자사의 솔류션을 설치 등등을 전문적으로 담당했었다) 직원의 권유로 다음과 같은 명령어로 JvmOptions를 추가해 보았다.

tomcat7 //US//{Service_Name} ++JvmOptions=-Dfile.encoding="UTF-8" 

 

결과는 만족, 데이터의 한글이 깨짐 없이 정상적으로 출력이 되었던 것이였다.

궁금했었다. 분명히 JvmOptions의 마지막에 관련 옵션을 추가하였기 때문이다.

혹시나 해서 이거 저거 중에 설정한 값을 바꿔보았다.

;-Dfile.encoding=UTF-8;%JvmArgs%" ^

 

음.. 데이터의 한글이 정상적으로 출력이 되는 것이였다.

이 JvmArgs 가 무엇인지 확인해 볼려고 했으나, 관련 정보는 보이지 않고, 또한 service.bat의 JvmArgs가 set으로도 설정이 되어 있지 않음을 확인하였다.

아마도 여기서 문제가 발생하여 -Dfile.encoding=UTF-8 옵션 설정이 잡히지 않은 것으로 판단이 된다.

 

아무튼 큰 이슈 해결을 찾은 것은 아니였나, 지난 주 부터 오늘까지 반나절을 소비했는 부분이라 글로 남겨 보왔다.

Posted by 테리
:

한글로 검색되는 Jenkins Plugin의 결과들은 maven으로 작업을 한 뒤에 eclipse에서 import 하는 식으로 나와 있다.

아직 영문을 검색해 보진 못하였지만,

그래서 많이 나오는 것 위주로 진행해 보았으나 BUILD FAILED 결과를 맞고 말았다.

 

일단 최초 시도한 것부터 열거해 보면 다음과 같다.

그전에 테스트 환경부터 정리해 본다.

OS windows 10, amd64
java version 1.8.0_191, 
JAVA_HOME C:\Program Files (x86)\Java\jre1.8.0_91
maven 3.2.5

 

1. Jenkins repository용도의 settings.xml 파일 설정

maven repository에 settings.xml을 설정하는 내용이 최초로 소개가 된다. (여기서 settings.xml의 정보는 %MAVEN_HOME%conf 디렉토리에 있는 settings.xml과는 다른 것이다.)

그러나, 본인의 컴은 집에서 개인용이 아닌 사무실 작업용 컴퓨터여서 선듯, settings.xml 정보를 기 사용중인 reposigitory에 설정하기가 두려웠다. (repository가 한번 꼬이면 이전에 작업했던 거, 작업 중인 것들이 다 초기화를 해야하는 두려움 때문에)

그래서 찾아보니 Jenkins용 workspace 아래에 해당 settings.xml을 놔두면 꼬이는 현상이 없을 거이라는 글을 확인하고 바로 진행하였다.

workspace C:\\workspace_Jenkins_Plugin

위의 디렉토리에 settings.xml 파일을 만들고 다음과 같은 내용을 채웠다.

<settings>
  <pluginGroups>
    <pluginGroup>org.jenkins-ci.tools</pluginGroup>
  </pluginGroups>


  <profiles>
    <!-- Give access to Jenkins plugins -->
    <profile>
      <id>jenkins</id>
      <activation>
        <activeByDefault>true</activeByDefault> <!-- change this to false, if you don't like to have it on per default -->
      </activation>
      <repositories>
        <repository>
          <id>repo.jenkins-ci.org</id>
          <url>http://repo.jenkins-ci.org/public/
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>repo.jenkins-ci.org</id>
          <url>http://repo.jenkins-ci.org/public/
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <mirrors>
    <mirror>
      <id>repo.jenkins-ci.org</id>
      <url>http://repo.jenkins-ci.org/public/
      <mirrorOf>m.g.o-public</mirrorOf>
    </mirror>
  </mirrors>
</settings>

 

2. Plugin 생성

이제 Plugin을 생성할 단계인데 다음과 같은 명령어를 수행해야한다고 나옵니다.

mvn -U org.jenkins-ci.tools:maven-hpi-plugin:create

이렇게 하면 앞서 생성한 settings.xml 파일이 repository에 존재하지 않기 때문에 문제가 발생합니다.

따라서, 다음의 추가 명령어를 더붙여서 진행합니다.

mvn -s settings.xml -U org.jenkins-ci.tools:maven-hpi-plugin:create

그러나 역시 BUILD FAILED가 발생합니다.

여기서 환경 설정을 변경할 생각을 못했습니다.....(환경 설정이 변경되었어도 여전히 BUILD FAILED가 발생한다.)

다시 검색에 들어가 보니 Jenkins에서 제공하는 방법이 있는데 이게 2번에 수행한 명령어와 상이합니다.

그래도 일단 끝을 봐야 하니 해당 명령어로 변경하여 다시 진행해 봅니다. (https://www.jenkins.io/doc/developer/tutorial/create/)

mvn -s settings.xml -U archetype:generate -Dfilter="io.jenkins.archetypes:"

이것도 앞서와 같이 "-s settings.xml"을 덧붙여서 진행합니다.

BUILD FAILED가 발생합니다.

로그를 보니 maven 버전을 요구하고 있네요 (maven 3.3.3)

- 캡쳐된 로그가 없습니다.

maven 버전을 다음과 같이 변경합니다. (기타 프로젝트는 어찌될 지 모르겠지만...)

maven 3.8.5

다시, Plugin 생성을 진행한 결과 드디어 BUILD SUCCESS가 떨어집니다.

 

3. acrtifact 명으로 생성된 디렉토리 명 변경

참고한 Jenkins 사이트에서는 특별한 사정이 있어서 디렉토리 명을 바꿔주길 바라네요.

$ mv demo demo-plugin 
$ cd demo-plugin
$ mvn verify

 

4. mvn verify

혹시나 싶어 "-s ..\settings.xml"을 추가했더니 실제 MAVEN의 settings.xml 파일을 찾고 싶어하는 로그가 보이더군요.

그래서 이 명령어에는 "-s ..\settings.xml" 옵션을 빼고 진행해 보았으나, BUILD FAILED가 발생하였습니다.

로그에서 %JAVA_HOME%lib\tools.jar 파일이 존재하지 않는다고 합니다.

검색을 해 보니 JRE는 tools.jar 파일이 존재하지 않기 때문에 JDK로 설정되어야 한다고 합니다.

%JAVA_HOME% 환경 파일을 다음과 같이 변경합니다.

JAVA_HOME C:\Java\jdk1.8.0_191

생성된 디렉토리를 삭제한 후 2번부터 재 진행하여 BUILD SUCCESS가 떨어지는 것을 확인하였습니다.

 

5. 이클립스로 import가 가능한 작업 진행 (https://blog.naver.com/PostView.naver?blogId=kylepark77&logNo=220042836459)

다음의 명령어를 진행한다.

mvn -DdownloadSources=true -DdownloadJavadocs=true -DoutputDirectory=target/eclipse-classes eclipse:eclipse

BUILD SUCCESS

 

그렇지만, 이클립스에서 import 하면 에러 및 경고 등이 발생

더 이상 진행하지 못함

 

다음편으로 ...

'개발 > Jenkins Plugin' 카테고리의 다른 글

Jenkins Plugin을 개발 관련 선행 작업  (0) 2022.05.16
Posted by 테리
:

1. 이클립스 4.5 ~ 4.6.2 이하 버전에 다음과 같은 오류가 발생한다 (따라서 4.2 버전 이하나  4.6.2 이상 버전을 요구하고 있다.)

"Only a type can be imported. hudson.model.Job resolves to a package".

https://bugs.eclipse.org/bugs/show_bug.cgi?id=495598

 

495598 – incorrect package vs class resolution

Maven project showing the issue no flags Details File with BuildTrigger folder and class no flags Details Screenshot 1 no flags Details Screenshot 2 no flags Details Screenshot 3 no flags Details

bugs.eclipse.org

2. 플러그인에 라이센스를 명확하게 식별하도록 해야 한다.

다음의 여러 사례 중 하나 또는 여러개를 사용하도록 권장하고 있다.

각 소스 파일의 상단에 라이센스 헤드를 추가
 MAVEN 프로젝트의 루트에 LICENSE 파일 추가
POM의 <licenses> 섹션 입력

아무것도 정의되지 않은 경우 코드는 MIT 라이선스​(https://en.wikipedia.org/wiki/MIT_License) 조건에 해당하는 것으로 간주한다.

'개발 > Jenkins Plugin' 카테고리의 다른 글

HelloWorld 따라가기  (0) 2022.05.16
Posted by 테리
: