プログラマ38の日記

主にプログラムメモです。

Java

【Java/その他】テキストファイルで、utf8からshift_jis(CP932)への変換時に注意すること

テキストファイルなどutf8だと扱いづらく、shift_jisに変換したい時があります。 欲しいコマンドがみつからない時に、自分で作成するときの注意事項です。 結論として、utf8からshift_jisへの変換で、プログラムで工夫することで文字化けを回避できる文字が…

【雑記/Java】最近のJavaで辛いなと思ったこと

自分は他の言語はあまりやらないので、Javaプログラムがメイン言語となっています。 なので、何か作ろうと思ったらコマンドラインのプログラムもJava、GUIのプログラムもJavaで済まそうとしてしまいます。 言語の拡張や新しい仕組みの導入などは無条件に受け…

【Java】UnixでJavaプログラムを動かした時にはまった思い出

プログラマになって間もない頃、単純なOracleへのデータ連携用プログラムを担当しました。処理はShift_JISのCSVファイルをいくつか値を変換してOracleにロードするものだったので、通常は、1.Oracleへワークテーブルを用意し、2.「sqlldr」でデータを投…

【Java】interfaceやabstract classが理解できた時の思い出

最初のプログラム言語はJavaでした。インスタンスやクラス、インターフェースや抽象クラス、キャストなど色々な横文字が大量に出てきて何が何やらわからず、苦労した思い出があります。 ある時なんとなくJavaが理解できた時の思い出です。 インスタンスとは …

【Java】JavaのWebServiceライブラリのクライアントプログラムでSOAPメッセージをデバッグする

前に、いくつかのJavaライブラリでSalesforceのSOAP APIを扱うという内容を書きました。 crmprogrammer38.hatenablog.com さらに追記で、上記のJavaライブラリでSOAPメッセージをデバッグするやり方になります。 Axis1.4 log4j.propertiesで指定します。なの…

【Java】「Apache Velocity」と「StringTemplate」の性能を比べてみる

前回StringTemplateの記事を書きましたが、Apache Velocityと性能を比べてみました。 Apache Velocityではまったこと テンプレートの書き方を忘れていて、テンプレートで変数のプロパティを指定する場合getterが必要でした。。 例えば、Apache Velocityのテ…

【Java】「StringTemplate」ライブラリを使ってみました

Javaで、「StringTemplate」のライブラリを使ってみました。 はじめに Javaのテンプレートエンジンは、Apache Velocityを代表として色々なものがあると思います。VelocityはVTLが使いやすいのですが様々な理由でVelocity以外が使いたいときもあると思います…

【雑記】Java開発ではまった思い出(JDBCやlog4J)

久しぶりにJavaを使うことがありました。 だいぶ前に、JavaのWeb開発をしていてその時にはまったことをふと思い出しました。 WebLogicのDataSourceのConnectionをcloseしておらずエラー インスタンスを起動してしばらくすると、DBのConnectionが取得できずエ…

【Java】beanshellでSalesforceのメタデータ削除ツールを作りました

メタデータを削除したい時があります。 間違えてカスタム項目をたくさん作ってしまった キューを作ると自動で作成されるビューを削除する こんな時にまとめてメタデータを削除できるツールです。 ツールはbeanshellで作成しています。 ダウンロードはこちら…

【Java】beanshellでSalesforceのファイル(添付ファイル、ドキュメント、イベントログ)のエクスポートツールを作りました

SalesforceのバイナリファイルはSOQLで取得することができます。 例えば添付ファイルはAttachmentというオブジェクトから取得できます。 ですが、SOQLでオブジェクトからデータを取得するとbase64エンコードされた文字列となるため、バイナリにデコードして…

【Java】beanshellが使いやすい

Javaでスクリプトを実行する仕組みは色々ありますが、Javaコードがほぼそのまま実行できる点でbeanshellはとても使いやすいなと感じています。(でも、ジェネリクスや、可変長引数は対応してないので、うっかり書いてしまうとエラーの解決に時間がかかります…

【Java】wscでSalesforce APIを使用する

まずはサンプルコード ConnectorConfig connectorConfig = new ConnectorConfig(); String soapEndpoint = "https://login.salesforce.com/services/Soap/u/39.0"; connectorConfig.setAuthEndpoint(soapEndpoint); connectorConfig.setManualLogin(true); c…

【Java】apache cxfでSalesforce APIを使用する

まずはサンプルコード URL wsdlurl = Soap.class.getClassLoader().getResource("/partner.wsdl"); Soap soapBinding = new SforceService(wsdlurl).getSoap(); BindingProvider bp = (BindingProvider)soapBinding; bp.getRequestContext().put(BindingProv…

【Java】wsimportでSalesforce APIを使用する

まずはサンプルコード Soap soapBinding = new SforceService().getSoap(); WSBindingProvider provider = (WSBindingProvider)soapBinding; Map<String, Object> reqContext = provider.getRequestContext(); reqContext.put(WSBindingProvider.ENDPOINT_ADDRESS_PROPERTY, </string,>…

【Java】axis2でSalesforce APIを使用する

まずはサンプルコード String url = "https://login.salesforce.com/services/Soap/u/39.0"; SforceServiceStub soapBinding = new SforceServiceStub(url); Options options = soapBinding._getServiceClient().getOptions(); options.setProperty(HTTPCons…

【Java】axis1.4でSalesforce APIを使用する

まずはサンプルコード SoapBindingStub soapBinding = (SoapBindingStub)new SforceServiceLocator().getSoap(); soapBinding._setProperty(org.apache.axis.transport.http.HTTPConstants.MC_ACCEPT_GZIP , "true"); soapBinding._setProperty(org.apache.a…

【Java】色々なJavaライブラリでSalesforceAPIを使う

SOAP APIのJavaクライアントには、色々なライブラリがあります。それぞれのJavaライブラリでSalesforce APIを使ってみた結果をまとめてみます。 サマリ Java ライブラリ SOAP API Metadata API xsd:intにバインドされる型 データバインディングの性能 Axis1.…