다음과 같이 One-to-many인 관계의 Server와 Application 엔티티 (Entity)를 삭제하려고 하면,


serverRepository.deleteAll();

applicationRepository.deleteAll();


다음과 같은 예외에 직면한다.


Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (`db_test`.`Application`, CONSTRAINT `FK_st6rf78jiyuvl1tki5kapktc2` FOREIGN KEY (`server_id`) REFERENCES `Server` (`id`))


다음과 같이 Server 엔티티의 @OneToMany 애노테이션 (Annotation)에 cascade 설정을 추가한다.


@OneToMany(mappedBy = "server", fetch = FetchType.EAGER, cascade = CascadeType.ALL)

private List<Application> applications = new ArrayList<Application>();


Reference:

http://stackoverflow.com/questions/5715184/jpa-bidirectional-one-to-many-foreign-key-issues

Posted by izeye

댓글을 달아 주세요

다음 예외 발생 시


Exception in thread "main" java.io.IOException: No FileSystem for scheme: hdfs


hadoop-hdfs 디펜던시 (Dependency)가 추가되어 있지 않다면, 다음과 같이 추가한다.


<dependency>

<groupId>org.apache.hadoop</groupId>

<artifactId>hadoop-hdfs</artifactId>

<version>2.2.0</version>

</dependency>

Posted by izeye

댓글을 달아 주세요

다음 예외 발생 시


Exception in thread "main" java.net.MalformedURLException: unknown protocol: hdfs


hadoop-hdfs 디펜던시 (Dependency)가 추가되어 있지 않다면, 다음과 같이 추가한다.


<dependency>

<groupId>org.apache.hadoop</groupId>

<artifactId>hadoop-hdfs</artifactId>

<version>2.2.0</version>

</dependency>

Posted by izeye

댓글을 달아 주세요

이클립스 (Eclipse)에서 하둡 (Hadoop) 프로그램 실행 시 다음과 같은 메시지에 직면하면,


java[4165:1003] Unable to load realm info from SCDynamicStore


VM arguments에 다음을 추가해주면 된다.


-Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk

Posted by izeye

댓글을 달아 주세요

이클립스 (Eclipse)에서 하둡 (Hadoop) 프로그램 실행 시 다음과 같은 예외에 직면하면,


java.io.IOException: HADOOP_HOME or hadoop.home.dir are not set.


VM arguments에 다음을 추가해주면 된다.


-Dhadoop.home.dir=/Users/izeye/Applications/hadoop/hadoop-2.2.0

Posted by izeye

댓글을 달아 주세요

MyBatis Mapper XML에서 <, >를 &lt;, &gt;로 변경하는 삽질을 하지 않으려면,


다음과 같이 CDATA를 사용해야만 한다.


<![CDATA[

...

]]>


하지만 다음과 같이 CDATA 안에서 foreach를 사용하는 경우에


<![CDATA[

...

<foreach item="somethingId" index="index" collection="somethingIds" open="(" separator="," close=")">

${somethingId}

</foreach> AND

...

]]>


다음과 같은 예외에 직면한다.


Caused by: org.apache.ibatis.binding.BindingException: Parameter 'somethingId' not found. Available parameters are [somethingIds, ...]


CDATA 안에서 foreach를 사용할 경우 foreach가 해석되지 않는다는 사실을 모르면 한참을 삽질할 수 있다.


CDATA를 포기하고 &lt;, &gt;를 사용할 수도 있겠지만,


단순히 다음과 같이 foreach만 CDATA 밖으로 빼주면 된다.


<![CDATA[

...

]]>

<foreach item="somethingId" index="index" collection="somethingIds" open="(" separator="," close=")">

${somethingId}

</foreach> AND

<![CDATA[

...

]]>

Posted by izeye

댓글을 달아 주세요

다음 명령 실행 시


hadoop fs -copyFromLocal test.txt hdfs://localhost/user/izeye/test.txt


다음과 같은 에러에 직면할 수 있다.


copyFromLocal: Call From Johnnyui-MacBook-Pro.local/x.x.x.x to localhost:8020 failed on connection exception: java.net.ConnectException: Connection refused; For more details see:  http://wiki.apache.org/hadoop/ConnectionRefused


jps 명령으로 확인하면,


SecondaryNameNode와 DataNode는 동작 중이지만,


NameNode는 보이지 않았다.


네임 노드 (Name Node)를 포맷 (Format)했던 것으로 기억하는데


혹시나 해서 다음과 같이 다시 포맷하고 실행하니 해결되었다.


hadoop namenode -format


-----


포맷으로 해결됐지만, 나중에 다시 재현되었다.


다시 포맷으로 해결되긴 하지만, 근본적인 원인을 알 수 없어 근본적인 해결이 되지 않았다.

Posted by izeye

댓글을 달아 주세요

다음 명령 실행 시


hadoop fs -copyFromLocal test.txt hdfs://localhost/user/izeye/test.txt


다음과 같은 에러에 직면할 수 있다.


copyFromLocal: `hdfs://localhost/user/izeye/test.txt': No such file or directory


다음과 같이 디렉토리를 생성해주면 해결된다.


hadoop fs -mkdir -p /user/izeye


다음 명령으로 복사된 파일을 확인할 수 있다.


hadoop fs -ls hdfs://localhost


Reference:

http://stackoverflow.com/questions/19912847/copyfromlocal-user-hduser-gutenberg-no-such-file-or-directory

Posted by izeye

댓글을 달아 주세요

다음 디펜던시 (Dependency) 추가 후,


<dependency>

<groupId>org.hibernate</groupId>

<artifactId>hibernate-c3p0</artifactId>

<version>4.3.0.Final</version>

</dependency>


org.hibernate.c3p0.internal.C3P0ConnectionProvider 클래스 참조 시 다음과 같은 예외에 직면할 수 있다.


Caused by: java.lang.ClassNotFoundException: org.hibernate.engine.jdbc.connections.spi.ConnectionProvider


hibernate-core 버전을 확인하니 4.2.7.SP1였다.


동일하게 4.3.0.Final로 변경한다.

Posted by izeye

댓글을 달아 주세요

메이븐 (Maven) 디펜던시 (Dependency) 추가 후, 다음과 같은 에러에 직면했다.


java.lang.NoSuchMethodError: org.eclipse.jdt.internal.compiler.CompilationResult.getProblems()[Lorg/eclipse/jdt/core/compiler/IProblem;

org.apache.jasper.compiler.JDTCompiler$2.acceptResult(JDTCompiler.java:354)

org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:480)

org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:425)


해당 디펜던시에서 JDTCompiler 클래스를 포함하고 있는 jasper-compiler Artifact를


다음과 같이 제외 (Exclusion)시키니 해결되었다.


<exclusions>

<exclusion>

<artifactId>jasper-compiler</artifactId>

<groupId>tomcat</groupId>

</exclusion>

</exclusions>

Posted by izeye

댓글을 달아 주세요