Category - JAVA

Linux JAVA環境設定

/etc/profile


export JAVA_HOME=/usr/local/j2sdk1.4.2_19
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tool

read more

Google Gdata でドキュメントにアクセスできない場合

DocsService client = new DocsService("Gdata Test");
client.setUserCredentials("your_id@gmail.com","your_password");

String filepath = "C:/sample/php/test.txt";
String title = "TitleToUse";

File file = new File(filepath);
DocumentListEntry newDocument = new DocumentListEntry();
String mimeType = DocumentListEntry.MediaType.fromFileName(file.getName()).getMimeType();
newDocument.setFile(new File(filepath), mimeType);
newDocument.setTitle(new PlainTextConstruct(title));

client.insert(new URL("http://docs.google.com/feeds/documents/private/full/"), newDocument);

こういうコードでエラーが出てしまう場合
com.google.gdata.util.ResourceNotFoundException: OK


Not Found


Not Found


Error 404




アクセスするURLを変更してみる
http://docs.google.com/feeds/default/private/full

read more

Google App Engine web.xmlが原因でデプロイできない場合

Unable to update:
com.google.apphosting.utils.config.AppEngineConfigException: Received SAXException parsing the input stream for C:\DOCUME~1\cano\LOCALS~1\Temp\appcfg1440753846138707172.tmp\WEB-INF/web.xml
at com.google.apphosting.utils.config.AbstractConfigXmlReader.getTopLevelNode(AbstractConfigXmlReader.java:214)
at com.google.apphosting.utils.config.AbstractConfigXmlReader.parse(AbstractConfigXmlReader.java:228)
at com.google.apphosting.utils.config.WebXmlReader.processXml(WebXmlReader.java:141)
at com.google.apphosting.utils.config.WebXmlReader.processXml(WebXmlReader.java:22)
at com.google.apphosting.utils.config.AbstractConfigXmlReader.readConfigXml(AbstractConfigXmlReader.java:111)
at com.google.apphosting.utils.config.WebXmlReader.readWebXml(WebXmlReader.java:72)
at com.google.appengine.tools.admin.Application.compileJsps(Application.java:379)
at com.google.appengine.tools.admin.Application.createStagingDirectory(Application.java:252)
at com.google.appengine.tools.admin.AppAdminImpl.update(AppAdminImpl.java:54)
at com.google.appengine.eclipse.core.proxy.AppEngineBridgeImpl.deploy(AppEngineBridgeImpl.java:271)
at com.google.appengine.eclipse.core.deploy.DeployProjectJob.runInWorkspace(DeployProjectJob.java:148)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Caused by: org.apache.xerces.impl.io.MalformedByteSequenceException: Invalid byte 1 of 1-byte UTF-8 sequence.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
at org.mortbay.xml.XmlParser.parse(XmlParser.java:230)
at com.google.apphosting.utils.config.AbstractConfigXmlReader.getTopLevelNode(AbstractConfigXmlReader.java:206)
... 12 more

こんな風にエラーが出てデプロイできない場合

デプロイの前にエクリプスがJSPをコンパイルしてコンパイルしたサーブレットをweb.xmlに登録しています

org.apache.jsp.index_jsp
org.apache.jsp.index_jsp

ファイル名やフォルダ名に全角が入っていると
コンパイル後のweb.xmlの文字コードがSJISになってしまってデプロイできないようです。

read more

slim3 モデルクラスのgetKey() でキーの実態を取得する場合

[モデルクラス名].getKey() のみでは取得できないようです。

[モデルクラス(キーの数値)] となってしまいます。

そこで
import org.slim3.jsp.Functions;

Functions.key([モデル].getKey()); で取得できます。

staticなのでこのまま呼び出せます。

read more

java.lang.NoClassDefFoundError: com/google/common/collect/Maps

Google App Engine JAVAでの開発時に良く出るエラー

java.lang.NoClassDefFoundError: com/google/common/collect/Maps

ここからgoogle-collect-1.0-rc4.zipをダウンロードして
展開後、jarにCLASSPATHを通す

http://code.google.com/p/google-collections/

read more

JavaでのHTTPクライアント

Applet内部デバッグで使っています。
Appletからのログ出力はできないっぽいのでCGIに値を渡してログを出しています。
Getメソッドの場合

  public void debug( String str ){

      String _str = str;
      String debug_url = "http://デバッグ用CGIのURL?str=";
      
      try {
        URL _url = new URL( debug_url + _str );
        HttpURLConnection urlconn = (HttpURLConnection)_url.openConnection();
        urlconn.setRequestMethod("GET");
        urlconn.setInstanceFollowRedirects(false);
        urlconn.setRequestProperty("Accept-Language", "ja;q=0.7,en;q=0.3");
        urlconn.connect();
       
        BufferedReader reader = new BufferedReader(new InputStreamReader(urlconn.getInputStream()));

        while (true){
          String line = reader.readLine();
          if ( line == null ){
              break;
          }
        }
  
        reader.close();
       
        urlconn.disconnect();
        
      }
      catch(Throwable e){
    
      }finally{
        try{
        }catch(Exception e){}
      }
    
  }

Postメソッドの場合
  public void debug( String str ){
      String _str = str;
      String debug_url = "http://デバッグ用CGIのURL?str=";
      try{
        URL _url = new URL( debug_url );
        HttpURLConnection conn = (HttpURLConnection)_url.openConnection();
        
        conn.setUseCaches(false);
        conn.setRequestMethod("POST"); /* GET or POST */
        conn.setDoOutput(true); /* GET:false / POST:true */
        conn.connect();
        
        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream()));
        StringBuffer outBuf = new StringBuffer();
        /* GET の場合は URL にくっつける。 */
        outBuf.append("&str=").append(URLEncoder.encode(_str,"UTF-8"));
        writer.write(outBuf.toString());
        writer.close();
        BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
        StringBuffer inBuf = new StringBuffer();
        String line;
        
        while((line = reader.readLine()) != null){
          inBuf.append(line).append('\n');
        }
        
        System.out.println(inBuf.toString());
        reader.close();
        conn.disconnect();
        
      }catch(Exception ex){
        ex.printStackTrace();
      }
  }

read more

Hibernate Tools インストール

eclipseにHibernate Toolsをインストール

http://www.hibernate.org/ ここのダウンロードから

こっちへ進んで
http://sourceforge.net/project/showfiles.php?group_id=22866&package_id=72248&release_id=478192
HibernateTools-3.2.0.beta9a.tar.gzをダウンロードして解凍後、
eclipseのフォルダに上書きして再起動。

プロジェクトを選択して「新規」→「その他」でHibernate.cfg.xml編集ツールが選択できればOK


read more

Eclipse 3.2 への Struts IDE プラグイン追加

EclipseにStrutsの開発をサポートするStrutsIDEを追加します。
少し前までEclipse 3.0 でしか動かなかったのですが 3.2 でも動きました。

http://www.eclipse.org/gef/よりGEF-runtime-3.2.zipをダウンロード解凍後、eclipseフォルダにすべてをコピーします。

https://sourceforge.jp/projects/amateras/files/ より以下のファイルをダウンロードします。
 ・tk.eclipse.plugin.struts_2.0.4.zip
 ・tk.eclipse.plugin.htmleditor_2.0.4.zip

解凍後、eclipseのpluginフォルダにコピーします。

eclipseを再起動します。
新規プロジェクト作成後、[ファイル]→[新規]→[その他]→[Amateras]→[Struts]→[Strutsサポートの追加] でStrust開発環境をプロジェクトに追加できます。
[Amateras]というのが以前と違って間に挟まれているようです。

これでstrutsプロジェクトに必要なjarファイル郡がコピーされ、 struts-config.xmlのグラフィカル編集ができるようになります。
既存プロジェクトの場合はそのままstruts-config.xmlのグラフィカル編集ができるようになります。

read more

Spring フレームワーク

DIコンテナを学ぶならSpring フレームワークが良いと思います。
Seasar2よりも入りやすい感じが・・・w
Shale以外でもPHPのMaple DIコンテナロジックもSpringと似てますね、、、というよりぱくっただろw
今のうちから情報収集しておくといいですね。
サンプルがたくさんついてて解説も詳しい書籍がありますのでここに紹介します。
spring.jpg

read more

Apache-Tomcatの連携

Linux上での設定です
まずはTomcatインストール
展開すればOK

tar xvzf jakarta-tomcat-5.0.30.tar.gz
mv jakarta-tomcat-5.0.30 /usr/local/src/
ln -snf /usr/local/src/jakarta-tomcat-5.0.30/ /usr/local/tomcat
#起動
/usr/local/tomcat/bin/startup.sh

http://host:8080/ でTOMCATテストページにアクセスできてJSPとServletのサンプルが確認できればOK

#停止
/usr/local/tomcat/bin/shutdown.sh

環境変数設定
vi /etc/profile
export CATALINA_HOME=/usr/local/tomcat
export CLASSPATH=$CATALINA_HOME/lib:$CLASSPATH
export CLASSPATH=$CATALINA_HOME/common/lib/servlet-api.jar:$CLASSPATH
export CLASSPATH=$CATALINA_HOME/common/lib/jsp-api.jar:$CLASSPATH


コネクタのコンパイル
JakartaのHPにあるLinux用のコネクタは環境によって動かないのでソースから作成します
tar xvzf jakarta-tomcat-connectors-jk2-src-current.tar.tar
cd jakarta-tomcat-connectors-jk2-2.0.4-src/
cd jk/native2/
./configure --with-apxs2=/usr/local/apache2/bin/apxs
make
cd ../../jk/build
ls
mod_jk2.so が出来ているのを確認
Apache のmoduleディレクトリにコピーする
cp mod_jk2.so /usr/local/apache2/modules/
cd ../../../conf/
設定用ファイルをコピー
cp jk2.properties /usr/local/apache2/conf/
cp workers2.properties /usr/local/apache2/conf/

*workers2.propertiesのサンプルにあわせる
cd /usr/local/tomcat/webapps/
cp -R jsp-examples exsamples

Apache.Tomcatを再起動する
http://host/examples  にアクセスできればOK

Tomcat側での動作確認後の設定
conf/server.xml
8080ポートをコメントにする この部分をコメントアウト
<!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8080 -->
<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />

conf/web.xml
ディレクトリ一覧をfalseにします
<init-param>
<param-name>listings</param-name>
<param-value>ture</param-value>
</init-param>

read more

JDKインストール

sun のページもしくは雑誌の付録などから入手します

./j2sdk-1_4_2_08-linux-i586-rpm.bin
chmod +x j2sdk-1_4_2_08-linux-i586.rpm
rpm -ivh j2sdk-1_4_2_08-linux-i586.rpm

「/usr/java/」以下にインストールされます

コマンドを確認
/usr/java/j2sdk1.4.2_08/bin/java -version
うまくバージョンが表示されればシンボリックリンクを張ってみます

ln -snf /usr/java/j2sdk1.4.2_08/ /usr/local/java
確認
/usr/local/java/bin/java -version

環境変数設定
vi /etc/profile
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$CLASSPATH
export CLASSPATH=$JAVA_HOME/lib/dt.jar:$CLASSPATH

read more

Shaleの情報は

少ないですね

【Jakarta/Apacheウォッチ】第20回 Strutsの後継Shaleによるアプリケーション作成
http://itpro.nikkeibp.co.jp/article/COLUMN/20051007/222469/?ST=oss&P=1

Shaleのことが話題になってからもう1年以上にもなるぜ?
それにしてもJAVAのフレームワークは習得が難しく開発には人月もかかる
それならPHPでやったほうが早いね

read more

JSPIDER 実行

JSPIDERとはJAVAでできたスパイダーツールです。
J2SDK 1.4以上で動きます。
インストールはアーカイブダウンロード後、解凍するだけ。

export JSPIDER_HOME=/opt/jspider/base.properties, skip.properties

設定ファイル変更
JSPIDER_HOME/conf/download/site

site.robotstxt.fetch=true
site.robotstxt.obey=true
     ↓
site.robotstxt.fetch=false
site.robotstxt.obey=false

/opt/jspiderbin//jspider.sh http://www.sexpixbox.com/tokyosecret/avlist/ download

INFO [mod.plugin.diskwriter.DiskWriterPlugin] Wrote ../output/./www.sexpixbox.c
om/tokyosecret/avlist/images/devi/10_lg.jpg
INFO [core.Spider] Stopped spider workers...
INFO [core.Spider] Stopped thinker workers...
[Plugin]
SPIDERING SUMMARY :
known urls ............. : 999

visited urls ........... : 460
parsed urls ............ : 115
parse ignored urls ..... : 345
parse error urls ....... : 0

not visited urls ....... : 539
fetching ignored urls .. : 538
forbidden urls ......... : 0
fetch error urls ....... : 1

not yet visited urls .. : 0
[Plugin] Spidering Stopped
INFO [core.Spider] Spidering done!
INFO [core.Spider] Elapsed time : 823396

ダウンロードが終わったらこんな風に表示されます。
本日始めて最後まで稼動させてみました!

read more

Recent entry

Search

Tag Cloud

Page Top