Apache Tomcat 다운로드 및 STS와 Tomcat 연동

 

1. Apache Tomcat 다운로드 : http://tomcat.apache.org/

 

2. Service Installer 는 설치형이고, 필자는 No 설치형을 다운받았다.

 

 

3. 다운로드는 끝났고, STS에 연동시키면 된다.

 

4. STS의 Package Explorer의 빈 화면에 우측마우스 클릭 New-Other

 

 

5. Wizards 에 server 입력후 Server 선택 후 Next

 

6. Apache 클릭후 다운로드 받은 Tomcat 버전 선택

 

7. Tomcat 경로 지정

 

 

8. jdk 경로 지정

 

 

9. 변경된 JRE home 경로, JRE name 변경, Finish

 

 

 

10. Finish

 

11. jdk 선택 후 Finish

 

12. 생성한 프로젝트가 있었다면

    Availabe 에서 프로젝트 클릭 > Add 클릭 > Finish 클릭

 

 

 

 

 

 

 

 

 

 

 

 

Spring Tool Suite (STS) 다운로드

 

1. STS 다운로드 링크 접속 : https://spring.io/tools

 

2. See all versions 클릭

 

3. 운영체제에 맞는 버전 다운로드

 

4. 압축 풀고, STS.exe 실행하면 끝!!

  1) STS.exe 실행하면 오류뜨는 사용자도 있을것이다. STS.exe 를 실행하기 위해서는 JDK 혹은 JRE가 사전에 설치 되있어야 한다.

     (우리는 개발자니까 JDK(Java Development kit) 를 설치하는게 이득!! 해결 완료!)

java.sql.SQLException: 부적합한 열 유형: 1111




Mybatis와 Oracle 연동하는데 insert를 하는 과정에서 에러가 났다.



부적합한 열 유형: 1111; nested exception is java.sql.SQLException: 부적합한 열 유형


테이블 컬럼에 null 이 들어가도 되는 경우 널이 넘어오는 경우를 생각해서

MyBatis 에서 column type 지정해 줘야 하는 문제라고 한다.

  

 이런식으로 하면 된다길래


해봤지만, 디비 디버깅 결과 다음과 같이 값을 못받아 온다/


spring3 버전에서 mvc interceptors 사용



스프링3 버전에서 mvc 인터셉터를 쓰려면 에러가 난다.





이게 스프링4 버전에서부터 바뀐 부분인데 


결론부터 말하자면


인터셉터를 선언하기 전에

 <mvc:annotation-driven/> 를 먼저 선언해주면 해결된다.



@MVC의 기반 클래스 변경

  • 3.1 부터 MVC기반 클래스 변경
    • <mvc:annotation-driven/>에 의해 등록되는 클래스들
    • HandlerMapping : DefaultAnnotationHandlerMapping -> RequestMappingHandlerMapping
    • HandlerAdaptor : AnnotationMethodHandlerAdapter -> RequestMappingHandlerAdapter
    • HandlerExceptionResolver : AnnotationMethodHandlerExceptionResolver -> ExceptionHandlerExceptionResolver
    • 이름을 보면
      • 'Annotation'은 이제 당연하므로 생략.
      • @RequestMapping이 연상되도록
  • Handler를 클래스가 단위가 아닌 메소드 단위로
  • <mvc:annotation-driven/>를 쓸 때 옛날 클래스와 같이 쓰지 않도록 주의

    <mvc:annotation-driven/>
    <bean id="handlerAdapter"
        class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="customArgumentResolvers">
           <array>
                 <bean class="net.benelog.UserArgumentResolver"/>
           </array>
        </property><property name="order" value="-1"/>
    </bean>
    

->

        <mvc:annotation-driven>
            <mvc:argument-resolvers>
                    <bean class="net.benelog.UserArgumentResolver"/>
            </mvc:argument-resolvers>
        </mvc:annotation-driven>



HTTP Status 500 - Servlet.init() for servlet action threw exception



HTTP Status 500 - Servlet.init() for servlet action threw exception


type Exception report

message Servlet.init() for servlet action threw exception

description The server encountered an internal error that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Servlet.init() for servlet action threw exception
	org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
	org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
	org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
	org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442)
	org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1083)
	org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:640)
	org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
	java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	java.lang.Thread.run(Unknown Source)

root cause




서블릿 설정 문제인데 모르겠다..

에러 : Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0 #2




pom.xml에서 아무 이상 없는데 dependency 부분에서 자꾸 에러나는 현상



에러코드를 검색해보면 repositories 를 추가하라고 되있는데 찾아보니까 




2016, 04, 26 부로 메이븐 추가 주소가 바뀌었다.



이 뒤로는 에러 안난다.


HTTP Status 500 - Request processing failed


서버 셋팅을 마치고 재대로 돌아가던 서버가 코드를 수정하고 서버를 돌리니 다음과 같은 메세지를 웹상에서 내뱉었다.


HTTP Status 500 - Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:


type Exception report

message Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:

description The server encountered an internal error that prevented it from fulfilling this request.

exception

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (ORA-01017: invalid username/password; logon denied
)
### The error may exist in file [C:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\first\WEB-INF\classes\mapper\sample\Sample_SQL.xml]
### The error may involve sample.selectBoardList
### The error occurred while executing a query
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (ORA-01017: invalid username/password; logon denied
)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:948)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
	org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

root cause



http 에러코드가 500 인걸로 봐서 내부 서버 오류라고 하는데 도대체 어떤점이 잘못됬는지 모르겠다.

500 :Internal server error (내부 서버 오류)


해결

SQL쪽에 문제가 있는 것 같아 datasource 쪽을 보니 아이디 비밀번호를 입력하는 칸이 있었다.


결론부터 말하자면 아이디를 잘 못 적었던 것이다. 



            




패스워드는 동일 하게 적었으나, 오라클이다보니 아이디를 system, sys 로 적었던 것이 문제 였다.


datasource.xml 에 적은 username과 오라클의 접속 ID가 같아야했던 것이었다.






스프링 글자색 배경색 바꾸기



스프링에서 배경색 및 글자색 변경 하는 방법은 2가지가 있다.(내가 알기론)


그중 두 번째 컬러 테마를 다운로드 하는 방법을 기술하겠다.

 

 

 

1. Windows -> Preferences로 이동


       

 

 

2. General -> Appearance -> Theme 에서 원하는 Theme 선택

 

       

 

 

3. 적용된 모습

 

스프링 글자색 배경색 바꾸기



스프링에서 배경색 및 글자색 변경 하는 방법은 2가지가 있다.(내가 알기론)


그중 첫 번째 컬러 테마를 다운로드 하는 방법을 기술하겠다.




1. Help -> Eclipse Marketplace로 이동

 




2. 검색창에 "color theme" 검색 후 인스톨




3. cofirm 클릭으로 진행



4. 진행 중




5. 동의 후 피니시




6. 창을 닫으면 설치를 계속 할꺼냐고 물어본다 당연히 OK



7. 설치가 끝나면 재시작 할꺼냐고 물어본다 당연히 OK



8. 재시작 후 Window -> Preferences로 이동



9. 왼쪽 탭에서 General -> Appearance -> Color Theme 이동

막 영어로 뭐라 써있는데 이중에서 맘에 드는거 선택해서 적용 하거나 Ok 하면 적용 된다.




10. 적용된 모습

나는 Solarized Dark로 바꿨다 

맘에 들진 않지만 적용된 모습을 보여주기 위해 바꿨음





에러 : Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0



pom.xml 설정 중에 서버가 안돌아가서 확인해보니


missing artifact com.oracle.jdbc:ojdbc14:jar:10.2.0.4.0 이라는 에러가 나왔다.


<dependency>

<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.4.0</version>
</dependency>

여기서 dependency 부분이 에러인 것이었다. 

다른 dependency는 문제가 없었는데 왜 꼭 이부분에서 그랬던 건가 해서 검색을 해보니



<repositories> 태그


<repository>
<id>mesir-repo</id>
<url>http://mesir.googlecode.com/svn/trunk/mavenrepo</url>

</repository>


라고 넣으면 된다는데 안됬다.


알아보니 오라클과 메이븐의 라이센스 문제 때문에 메이븐의 중앙저장소에서 받을수 없어서 발생하는 문제라고 한다.


그.래.서


오라클 홈페이지에 접속해서 (http://www.oracle.com/technetwork/apps-tech/jdbc-10201-088211.html) <- 회원가입은 해야한다

ojdbc14.jar 파일을 직접 다운 받아 tomcat\lib 폴더 안에 넣어주면 끝 


이거도 넣긴했는데 빼도 무방할 것 같다.

   <repository>

<id>mvn2</id>

<url>http://repo1.maven.org/maven2/</url>

<releases>

<enabled>true</enabled>

</releases>

<snapshots>

<enabled>true</enabled>

</snapshots>

</repository>  

<repository>

<id>oracle</id>

<name>ORACLE JDBC Repository</name>

<url>http://mesir.googlecode.com/svn/trunk/mavenrepo</url>

</repository> 



1

+ Recent posts