2012년 7월 5일 목요일

Spring-BlazeDS


1. Spring-Flex-Framework
http://www.springsource.org/spring-flex
2. Maven
Group: org.codehaus.jackson
Aritiface: jackson-core-asl
3. web.xml
<servlet>
    <servlet-name>SpringBlazeDS</servlet-name>
    <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>scada-flex-context.xml
        </param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>SpringBlazeDS</servlet-name>
    <url-pattern>/messagebroker/*</url-pattern>
</servlet-mapping>

1.5.2.Release버전의 경우, Spring 3.1.2에서 FlexSessionManager(?) 어쨋든 무슨 오류가 난다. 따라서, snapshot 버전을 써서 해결하도록 한다.

2012년 6월 28일 목요일

Spring Security Filter

org.springframework.security.web

*.context.Security.ContextPersistenceFilterSecurityContextRepository에서
SecurityContext를 로드하고
저장하는 일을 담당
SecurityContext는 사용자의 보호되고 인증된 세션을 의미
*.authentication.logout.LogoutFilter...
*.authentication.UsernamePasswordAuthenticationFilter사용자 이름, 비밀번호로 이루어진 폼 기반 인증에 사용하는 가상 URL 요청을 감시하고 요처이 있을 때 사용자 인증을 처리
가상URL: j_spring_security_check
*.authentication.ui.DefaultLoginPageGeneratingFilter...
*.authentication.www.BasicAuthenticationFilter...
*.savedrequest.RequestCacheAwareFilter...
*.servletapi.SecurityContextHolderAwareRequestFilter...
*.authentication.AnonymousAuthenticationFilter...
*.session.SessionManagementFilter...
*.access.ExceptionTranslationFilter...
*.access.intercept.FilterSecurityInterceptor...

Spring-Security dependency error

security를 설정하다 예기치 못한 오류로 인해 2시간을 날려 먹었다.
오류: security:http를 사용하기 위해서 spring-security.jar의 의존관계에 놓인 라이브러리를 찾지 못했다는 정도의 의미.
* maven을 이용하여 설정했기 때문에 의존관계에 놓인 누락된 jar가 도무지 무엇인지 몰라서 잘되던 project와 비교해봤지만 찾지 못했음

* 다시 살펴보니 server를 지정하지 않았었다. dynamic web module에 가서 서버를 지정하니 오류가 해결되었음..

* 내 2시간은 누가....

MAVEN-WTP-SPRING

Maven에 WTP를 설정을 하였다면 spring-framework가 가능하도록

Spring Tools -> Add Spring Project Nature
pom.xml
   Properties
      Create
         Name: spring.version
         Value: 3.1.1.RELEASE
         Name: spring.security.version
         Value: 3.1.0.RELEASE
   Dependency
      Add
         Group Id:  org.springframework
         Artifact Id: spring-core
                         spring-context
                         spring-beans
                         spring-web
                         spring-webmvc
                       


         Version:    ${spring.version}

         Group Id:  org.springframework.security
         Artifact Id: spring-security-core
                         spring-security-config
                         spring-security-web
         Version:    ${spring.security.version}


  maven->update project
  run as -> Maven Install



2012년 6월 27일 수요일

Maven-WTP Project 생성 순서

Eclipse에 Maven Plugin 설치
(URL은 추후에 추가하도록 하자)
1. Maven Integration for Eclipse
  - m2e - Maven Integration for Eclipse
  - m2e - slf4j over logback logging (option)
2. Maven Integration for Eclipse Extras
  - m2e connector for mavenarchiver pom properties
3. Maven Integration for Eclipse WTP
   - Maven Integration for WTP (Optional)
4. Maven Integration for WTP
   - Maven Integration for WTP


* 위에서 없어도 되는 게 있을 텐데, 하나씩 빼면서 해 볼 수도 없고



Project 생성
File -> New -> Other -> Maven -> Maven Project

New Maven project
Select project name and location
   * Use default Workspace location [선택] 후
   * Next

Select an Archetype
   * Catalog : Internal
   * Filter : webapp
    선택:
    Group Id: org.apache.maven.archetypes
    Artifact Id: maven-archetype-webapp

   * Next

Enter Artifact Id
   * Group Id: hnj.webapps [project 구분 id]
   * artifact id: scada [project name]
   * package: [project source package]

    * Finish

위의 과정을 거치면 artifact id로 넣었던 scada라는 이름의 project가 package explorer에 나타남
[pic-1][아래는 spring perspective]

[pic-2][아래는 Java EE perspective]

[pic-3][아래 Directory까지 추한한 후 Navigator로 본 구조]

Project 설정 변경
- src/main/webapps/WEB-INF/web.xml을 삭제
Project -> Project Facets

* Dynamic Web Module Check 해제 후 Apply
* 적당한 Dynamic Web Module의 버전 선택
Dynamic Web Module Check
* 하단: Further configuration available
context root: scada [project name]
content directory: /src/main/webapp
- generation web.xml을 선택
* OK


- 추가후 compler에서 보여지는 오류가 있다면
  - web-module 3.0
  - java-version 1.6
을 선택 하면, java version mismatch가 나옴
  - projects-properties
     Java Compiler의 java 버전 맞춤
- 그래도 남는 Maven 관련 오류
     "Dynamic Web Module 3.0 requires Java 1.6 or newer."
    pom.xml 편집

    <build>
<finalName>scada</finalName>
<!-- Dynamic Web Module 3.0 requires Java 1.6 or newer -->
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
<!-- Dynamic Web Module 3.0 requires Java 1.6 or newer -->
     </build>

     maven update를 수행

Project에 Directory 추가
src/main/java
src/main/resources


src/test/java
src/test/resources

와 같이 디렉토리 생성

추가한 directory를 deploy항목에 추가
xml파일 편집 또는 properties에서 설정
- .settings/org.eclipse.wst.common.component를 편집
또는
- Properties -> Deployment Assembly
에 추가

.classpath를 편집하거나 properties에서 설정
- .classpath
- Properties -> Java Build Path -> Source


maven update
maven install


제주도 구좌읍의 Wind Turbine


Spring

준비 상태 점검