wildfly에서 jboss를 통해 하나의 deployment 를 여러 서버에 올렸을 경우 java 에서 어느 서버인지 확인하는 법

String result1 = System.getProperty("jboss.node.name");
String result2 = System.getProperty("jboss.server.name");
System.out.println(result1);
System.out.println(result2);

결과

hostName1:server01-1
server01-1

 

'Java' 카테고리의 다른 글

logger를 사용하자  (0) 2023.02.16
Java 면접 예상질문 질의응답  (0) 2023.01.31
Spring Batch embedded tomcat  (0) 2020.07.28
java.lang.NoClassDefFoundError: sun/misc/BASE64Encoder  (0) 2020.01.28
Map 선언 초기화 동시에  (0) 2019.10.24

java.lang.NoClassDefFoundError: org/aspectj/util/PartialOrder$PartialComparable

 

Junit 테스트 중 method 한개만 테스트 할때는 문제 없는데 

class 단위로 테스트 했을때 문제 생기면

<dependency>
	<groupId>org.aspectj</groupId>
	<artifactId>aspectjweaver</artifactId>
	<version>1.9.5</version>
</dependency>

 

 

 

@Service
public class TestServiceImpl implements TestService {
	@Override 
    public void testMethod(){
    	// ...
    }
}

 

위와 같이 @Repository 가 아닌 @Service로 등록했음에도 불구하고 Invalid bound statement 로 뜨면서 쿼리문을 못찾는다고 나옴

 

 

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.chris1108.mysite.service.TestService.testMethod
	at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>(MapperMethod.java:214)
	at org.apache.ibatis.binding.MapperMethod.<init>(MapperMethod.java:48)

 

원인은 datasource-context.xml 에 설정했던 MapperScanner 때문 

@Repository 가 등록된 클래스들의 패키지를 확실하게 정하지 않은 상태여서 

실제 repository 들이 있는 com.chris1108.mysite.repository 가 아닌 

상위 패키지(com.chris1108.mysite ) 를 적었더니 해당 패키지에 위치한 @Service 까지도 mapper로 인식해 버리는 문제가 있었음. 

	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
	  	<property name="basePackage" value="com.chris1108.mysite" />
	</bean>

아래와 같이 변경 후 해결 

	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
	  	<property name="basePackage" value="com.chris1108.mysite.repository" />
	</bean>

+ Recent posts