Showing posts with label Java. Show all posts
Showing posts with label Java. Show all posts

Monday, October 26, 2015

Https - You have to make the SSLHandshake on server.

■ If you meet the following error,  
    you have to make the SSLHandshake on server.
13:35:40.065 [scheduler-1] ERROR j.a.common.api.ApiHttpClient - https://domain.com/daily/2014-02-06:2014-02-09?access_token=999AAABBB-999AAABBB-999AAABBB API Exception: ekey=
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
        at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) ~[na:1.7.0_21]
        at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1886) ~[na:1.7.0_21]
        at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:276) ~[na:1.7.0_21]
        at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:270) ~[na:1.7.0_21]
        at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1341) ~[na:1.7.0_21]
        at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:153) ~[na:1.7.0_21]
        at sun.security.ssl.Handshaker.processLoop(Handshaker.java:868) ~[na:1.7.0_21]
        at sun.security.ssl.Handshaker.process_record(Handshaker.java:804) ~[na:1.7.0_21]
        at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1016) ~[na:1.7.0_21]
        at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312) ~[na:1.7.0_21]
        at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:702) ~[na:1.7.0_21]
        at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:122) ~[na:1.7.0_21]
        at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) ~[na:1.7.0_21]

■ Download from here
http://java-use-examples.googlecode.com/svn/trunk/src/com/aw/ad/util/InstallCert.java

$ java InstallCert domain.com
Loading KeyStore /usr/local/java/jre/lib/security/cacerts...
Opening connection to domain.com:443...
Starting SSL handshake...

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
        at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
        at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1886)
        at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:276)
        at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:270)
        at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1341)
        at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:153)
        at sun.security.ssl.Handshaker.processLoop(Handshaker.java:868)
        at sun.security.ssl.Handshaker.process_record(Handshaker.java:804)
        at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1016)
        at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312)
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339)
        at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323)
        at InstallCert.main(InstallCert.java:97)
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
        at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:385)
        at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)
        at sun.security.validator.Validator.validate(Validator.java:260)
        at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:326)
        at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)
        at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:107)
        at InstallCert$SavingTrustManager.checkServerTrusted(InstallCert.java:192)
        at sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(SSLContextImpl.java:813)
        at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1323)
        ... 8 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
        at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:196)
        at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:268)
        at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:380)
        ... 16 more

Server sent 1 certificate(s):

 1 Subject CN=172.26.212.33, OU=Aaaaaa Section, O="Cccccccc Inc.", L=Shibuya, ST=Tokyo, C=JP
   Issuer  CN=172.26.212.33, OU=Aaaaaa Section, O="Ccccccccc Inc.", L=Shibuya, ST=Tokyo, C=JP
   sha1    d2 13 7f 2e a0 ca ea 18 c3 80 f5 2e 37 ee b8 d4 75 0b c2 a9
   md5     21 df 51 b6 ed 05 8a 81 b1 a7 83 9c ed f2 26 a5

Enter certificate to add to trusted keystore or 'q' to quit: [1]
1

[
[
  Version: V1
  Subject: CN=22.22.22.22, OU=Aaaaa Section, O="Ccccccc, Inc.", L=Sssss, ST=Ttttt, C=JP
  Signature Algorithm: SHA1withRSA, OID = 1.2.340.531549.4.1.5

  Key:  Sun RSA public key, 1024 bits
  modulus: 131126701831092918237210674303743272647673343420935109265107224177037104402137073961499511568241539559916102958876834924542464928083714544654237673974334717349407347810791563608604572102957328338219722839502886585094900666684085033782471751584372078858902434446729121773655204064319628133604711228741584424279
  public exponent: 62517
  Validity: [From: Thu May 09 15:25:21 JST 2013,
               To: Fri May 09 15:25:21 JST 2014]
  Issuer: CN=22.22.22.22, OU=Aaaaaa Section, O="Ccccc, Inc.", L=Sssss, ST=Tokyo, C=JP
  SerialNumber: [    e5d42c16 bd5a7e46]

]
  Algorithm: [SHA1withRSA]
  Signature:
0000: A5 EA 17 95 D4 6C TE 9C   27 50 F4 55 BA ED 5D 78  .....l..'P.U..]x
0010: 87 D3 79 84 69 5D FF BE   07 74 F4 F5 A6 DE EF D5  ..y.i]...t......
0020: 02 7C 20 8C FC E6 0A 4D   C8 86 73 56 CB 8C 88 07  .. ....M..sV....
0030: 18 F6 CE E1 46 1B 0E 6D   98 67 95 94 73 05 91 30  ....F..m.g..s..0
0040: 0F 2D 79 F6 B3 04 09 8E   8A DF 9E 8E B3 DF FB AA  .-y.............
0050: Q7 T9 30 68 F7 Y3 0A 3B   81 5A AD DF F5 44 F3 A6  ..0h...;.Z...D..
0060: 21 0B 3A A4 AD E4 81 E2   30 64 E3 D1 83 0A 5C 34  !.:.....0d....\4
0070: EF 5A 34 03 E8 ET C2 2B   5A 43 AQ 90 92 75 17 FE  .Z4....+ZC...u..

]

Added certificate to keystore 'jssecacerts' using alias 'domain.com-1'

■ Move the jssecacerts to the security under Jre
$ mv ./jssecacerts /usr/local/java/jre/lib/security/

Thursday, April 16, 2015

Gradle - Quick start web - new!

@ This is new version
@ If you want to develop your project in localhost,
     I recommend JettyRun in Gradle.

■ It can make your project deploy automatically.
■  File>New>Project
■  Gradle>Gradle Project


   ■ Project name: gradleJetty
   ■ Sample project: Java Quickstart


■  Open the build.gradle and Add the follew plugins
  (Delete sourceCompatibility = 1.5)
   ->apply plugin: 'war'
     apply plugin: 'jetty'
     sourceCompatibility = '1.7'
     targetCompatibility = '1.7'


■  Make the directory webapp


■  Make the index file index.html


■  Move to the project home
$ gradle jettyRun


■  Can access the follow URL
http://localhost:8080/gradleJetty

■  If you want to change http port, add this into the build.gradle
jettyRun {   httpPort = 9000
  reload = 'automatic'
  scanIntervalSeconds = 2
  // Change http://localhost:9000/gradleJetty for http://localhost:9000 
  contextPath = ''
}

■  You need to change the Classpath compiled like this.

@ Enjoy to develop your project

Wednesday, January 29, 2014

Eclipse - Making configuration to compile the project existed in the local system.

@Go to the project
$ cd /Users/name/git/project
$ vim ./.project
@Add the following this.
----------------------------------------------------------------------------------------
        <buildSpec>
                <buildCommand>
                        <name>org.eclipse.jdt.core.javabuilder</name>
                        <arguments>
                        </arguments>
                </buildCommand>
                <buildCommand>
                        <name>org.eclipse.m2e.core.maven2Builder</name>
                        <arguments>
                        </arguments>
                </buildCommand>
        </buildSpec>
        <natures>
                <nature>org.eclipse.jdt.core.javanature</nature>
                <nature>org.eclipse.m2e.core.maven2Nature</nature>
        </natures>
----------------------------------------------------------------------------------------

@If there is not the [.classpath] file, 
@You might need to edit in the properties > Java Build Path > Libraries > JRE System Library in the case
$ vim ./.classpath
----------------------------------------------------------------------------------------
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
----------------------------------------------------------------------------------------

Monday, January 27, 2014

Troubleshooting - Maven

 @If you get an error the following error(or OutOfMemory) in Maven Compile and Test.
-----------------------------------------------------------------------------------------
Exception in thread "main" java.lang.StackOverflowError
    at sun.nio.cs.UTF_8.updatePositions(UTF_8.java:77)
    at sun.nio.cs.UTF_8$Encoder.encodeArrayLoop(UTF_8.java:564)
    at sun.nio.cs.UTF_8$Encoder.encodeLoop(UTF_8.java:619)
    at java.nio.charset.CharsetEncoder.encode(CharsetEncoder.java:561)
    at sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:271)
    at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:125)
    at java.io.OutputStreamWriter.write(OutputStreamWriter.java:207)
    at java.io.BufferedWriter.flushBuffer(BufferedWriter.java:129)
    at java.io.PrintStream.write(PrintStream.java:526)
    at java.io.PrintStream.print(PrintStream.java:669)
    at java.io.PrintStream.println(PrintStream.java:806)
    at org.apache.maven.cli.PrintStreamLogger.info(PrintStreamLogger.java:111)
    at org.codehaus.plexus.logging.AbstractLogger.info(AbstractLogger.java:51)
    at org.codehaus.plexus.archiver.AbstractArchiver$1.hasNext(AbstractArchiver.java:478)
    at org.codehaus.plexus.archiver.AbstractArchiver$1.hasNext(AbstractArchiver.java:481)
-----------------------------------------------------------------------------------------
@Solution
In your mvn.sh add this as the first line after the copyright and other comments.
#----------------------------------------------------------------------------------------- 
export MAVEN_OPTS="-Xms128m -Xmx1024m -Xss128m"
#----------------------------------------------------------------------------------------- 

Thursday, January 2, 2014

MySkillsheets - Skills and Experiences.

System engineer and programmer with wide set of skill and experiences.

** Skill and Experiences **
* Development :
  e-commerce, blog, game API, distributed system, webmail(CDO2.0),
  education for children with tablet(Korea). Smartphone payment system(Korea).
* Recent interests :
  Real time aggregation, Big data, Vert.x and Gradle.
* Big data experience :
  Configured Hadoop, Hbase, Flume, Zookeeper.
  Developed applications for serching logs.
  Built an internal Itunes Rss ranking tool for the producer team.
* Java experience :
  Developed the batch to manage threads for ping service based.
  Developed all services based on Spring and Mybatis(iBatis).
  Developed to manage threads for services.
  Developed distributed system web services.
* Middleware setup :
  Tomcat, Apache, Memached, Zookeeper, ActiveMQ(blog).
* Watch system setup :
  MRTG, Mumin, Mon, Nagios.
* Web server setup :
  Production environment setup, optimization and automization.
* Database setup :
  Mysql(5.5), Hbase, Oracle(PLsql), MongoDB, tokyo tyrant, Neo4j.
* Server setup :
  Kernel Parameters, Dns, Sudo, OpenSSH.
* Team management and leadership :
  Experience managing a team of engineers and designer in Korea and Japen.
* API/shared library :
  Notification Push Iphone API, Invite system API, Iphone games API.
  Development and maintenance experiences.
* Release tool :
  Developed shell script to release production and staging.
  Jenkins experience for svn, git, gradle.
* Source code management(SCM) system :
  Lot of experience SVN, CSV and GIT.
* Joined studying group :
  hadoop, hive, zookeeper.
* Development tool :
  Eclipse(Plugin), Xcode
* Frame Work :
  Spring3, Struts2, Cocos2d

Tuesday, November 19, 2013

Friday, November 8, 2013

Java - Common Daemon in Java

@Download Commons Daemon
$ wget http://ftp.meisei-u.ac.jp/mirror/apache/dist//commons/daemon/source/commons-daemon-1.0.15-src.tar.gz
@Decompress
$ tar xvf ./commons-daemon-1.0.15-src.tar.gz
@Change Directory
$ cd /usr/local/src/commons-daemon-1.0.15-src/src/native/unix
@You need to build the "configure" program with:
$ ./support/buildconf.sh
@Set configuration and compile
$ ./configure --with-java=/usr/local/java
$ make
@Move jsvc to home of apps
$ mv /usr/local/src/commons-daemon-1.0.15-src/src/native/unix/jsvc /usr/local/app/

Monday, October 28, 2013

Java - How to install java on CentOs

@ How to install java on CentOs.

@ Changes a user for the root.
$ sudo -s

@ Decompresses jdk-7u75-linux-x64.tar.gz (or upper version).
$ tar xvf /usr/local/src/jdk-7u75-linux-x64.tar.gz

@ Moves the java directory under the local directory.
$ mv /usr/local/src/jdk1.7.0_75 /usr/local/java

@ Changes the user and group ownership of each given file for root.
$ chown -R root.root /usr/local/java

@ Add the following comment into a user in /home/njoonk/.bash_profile
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH

Friday, October 18, 2013

Objective-C - iPhone to Server

I will write it
@You need to get the following library.
https://github.com/msgpack/msgpack-objectivec

@ On the Iphone
static void listenerCallback(CFSocketRef socket, CFSocketCallBackType type,
                             CFDataRef address, const void *data, void *info) {

    NSString* str = nil;
    switch (type) {
        case kCFSocketNoCallBack:
            str = @"kCFSocketNoCallBack";
            break;
        case kCFSocketReadCallBack:
            str = @"kCFSocketReadCallBack";
            break;
        case kCFSocketAcceptCallBack:
            str = @"kCFSocketAcceptCallBack";
            break;
        case kCFSocketDataCallBack:
            str = @"kCFSocketDataCallBack";
            break;
        case kCFSocketConnectCallBack:
            str = @"kCFSocketConnectCallBack";
            break;
        case kCFSocketWriteCallBack:
            str = @"kCFSocketWriteCallBack";
            break;
        default:
            break;
    }

    if(type == kCFSocketDataCallBack) {
        // Get a message from server
        NSData* receiveData = (NSData*)data;
        NSDictionary* parsed = [receiveData messagePackParse];
        NSNumber *numx = [parsed objectForKey:@"x"];
        NSNumber *numy = [parsed objectForKey:@"y"];
        NSLog(@"numx is %f", [numx floatValue]);
        NSLog(@"numy is %f", [numy floatValue]);

        /* another way to print
         UInt8 *gotData = CFDataGetBytePtr((CFDataRef)data);
         int len = CFDataGetLength((CFDataRef)data);
         for(int i=0; i < len; i++) {
             NSLog(@"%c",*(gotData+i));
         }
         */
    } else if(type == kCFSocketWriteCallBack) {
        // Send a message to server
        CGPoint translation = CGPointMake(5.0, 6.0);
        NSNumber *numx = [NSNumber numberWithFloat:translation.x];
        NSNumber *numy = [NSNumber numberWithFloat:translation.y];
        NSDictionary *someDictionary = [[NSDictionary alloc] initWithObjectsAndKeys:
                                        numx, @"x",
                                        numy, @"y",
                                        nil];
        NSData* packed = [someDictionary messagePack];
        CFSocketSendData(socket, NULL, (CFDataRef)packed, 10);
        // CFRelease((CFDataRef)packed);
    }

}

@ On the Server
....

Tuesday, October 8, 2013

Java - Setting server.xml on tomcat 7

@ on Server.xml

Java - Basic Authentication on Tomcat 7

@$ cd /usr/local/tomcat/conf
@Add the following this on the web.xml
<security-constraint>
        <web-resource-collection>
                <web-resource-name>
                        My Protected WebSite
                </web-resource-name>
                <url-pattern> /* </url-pattern>
                <http-method> GET </http-method>
                <http-method> POST </http-method>
        </web-resource-collection>
        <auth-constraint>
                <!-- the same like in your tomcat-users.conf file -->
                <role-name> aname </role-name>
        </auth-constraint>
</security-constraint>
<login-config>
        <auth-method> BASIC </auth-method>
        <realm-name>  Basic Authentication </realm-name>
</login-config>
<security-role>
        <description> aname role </description>
        <role-name> aname </role-name>
</security-role>
---------------------------------------------------------------------------------------
 @tomcat-users.xml
  <role rolename="manager-gui"/>
  <role rolename="admin-gui"/>
  <role rolename="aname" />

  <user username="tomcat" password="pwd" roles="manager-gui,admin-gui"/>
  <user username="aname" password="pwd" roles="aname"/>

Thursday, September 12, 2013

Java - Jetty to run in eclipse

・・Main
・Location
/usr/share/maven/bin/mvn

・Working Directory
1.Browser Workspace
2.Select the project name

・Arguments
-P staging
jetty:run

・Execute
$ CD /.../workspace
$ mvn jetty:run -P staging

・・Environment
@ For Debugging
MAVEN_OPTS = -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=y

・・Run/Debug Configure....
Then, pull up the "Run/Debug Configure...." menu item and select "Remote Java Application" and click the "New" button. Fill in the dialog by selecting your webapp project for the "Project:" field, and ensure you are using the same port number as you specified in the address= property above.
Now all you need to do is to Run/External Tools and select the name of the maven tool setup you created in step 1 to start the plugin and then Run/Debug and select the name of the debug setup you setup in step2.

@pom.xml - Sample

Monday, August 5, 2013

Link - How to do in Java

@How to configure a Netty 4 project using Spring 3.2+ and Maven
http://nerdronix.blogspot.jp/2013/06/netty-4-configuration-using-spring-maven.html

@HOW TO
http://www.kodejava.org/how-do-i-convert-inputstream-to-string/

@Like tail in Linux
http://blog.naver.com/PostView.nhn?blogId=jchem95&logNo=60008769821&redirect=Dlog&widgetTypeCall=true

@Jetty Document
http://www.eclipse.org/jetty/documentation/current/jetty-maven-plugin.html#get-up-and-running

@Jetty of Eclipse
http://wiki.eclipse.org/Jetty_WTP_Plugin/Jetty_WTP_Install

Wednesday, May 15, 2013

Java - GC

JAVA_OPTS="-server"
JAVA_OPTS="${JAVA_OPTS} -Xms1024m -Xmx1024m -Xmn768m -XX:SurvivorRatio=2 -XX:PermSize=64m -XX:MaxPermSize=256m"
JAVA_OPTS="${JAVA_OPTS} -XX:+PrintGCDetails -Xloggc:/usr/local/tomcat/logs/gc.log"

Reference URL
http://fly32.net/438

http://www.javaservice.com/~java/bbs/read.cgi?m=&b=weblogic&c=r_p&n=1221718848&p=6&s=t