7月, 2017
ぬるぽ!!
こんにちは。システム開発部の”さいちゅう”です 😆
ここ2週間ぐらい仕事でこのタイトルの言葉を何回頭の中を廻ったかわかりません。そう叫びたくなるときもありますが心の中で叫んでいます。
まず何で「ぬるぽ!!」って叫びたくなったかといいますと単純に今やっているのがSOAP/HTTP通信でREQUESTを投げてRESPONSEが返って来るという処理なのですが、REQUESTを投げてRESPONSEがnullで返って来るという状態が2週間ぐらい続いてました 😐
原因は掴めぬまま1週間と3日たった頃にあるサイトにたどり着きました。
http://www.techscore.com/tech/XML/XML_Schema/Schema9/9_2.html
原因としては
elementFormDefault=unqualified
がデフォルトで設定されているのですが、各エレメントに接頭辞がついていることが原因でした。
WSDLファイルをJAX-WSで自動生成したソースが下記のように設定されている状況。
“package-info.java”
@javax.xml.bind.annotation.XmlSchema(namespace = “http://www.blog.hr-next.co.jp/”)
package http://www.blog.hr-next.co.jp/
“hrn.xml”
<hrn:Response xmlns:hrn=”http://hr-next.co.jp/” xmlns:hrn-blog=”http://www.blog.hr-next.co.jp/”>
<hrn:Result>
<hrn:name>saicyu</hrn:name>
</hrn:Result>
<hrn-blog:status>
<hrn-blog:name>nullP</hrn-blog:name>
</hrn-blog:status>
</hrn:Response>
上記のように接頭辞をつけてはいけませーんというときはこのhrn-blogの接頭辞をはずさなければならないのですが、使っているAPIはXmlObjectとXmlCursorというXMLファイルを操作するAPIには私が見る限り削除するというAPIがなく二通りの手段で削除して何とか完成に至りました・・・。
1.XmlObjectを文字列かしてPatternとMatcherで除去する。
String hrnString = hrn.toString();
String removeString = “hrn-blog” + “:”;
Pattern hrnPattern = Pattern.compile(hrnString);
Matcher hrnMatcher = hrnPattern.matcher(hrnString);
if (hrnMatcher.find()){
// マッチした部分を除去する
hrnString = hrnMatcher.replaceAll(“”);
}
// XmlObjectに戻す
XmlObject newBody = XmlObject.Factory.parse(hrnString);
2.Valueを取得し新たにエレメントを作成し追加する。
XmlCursor hrnCursor = hrn.newCursor();
XmlCursor newCursor = null;
// newCursorにはBodyの初期設定を行う。省略
// 要素文繰り返す
while(hrnCursor.hasNextToken()){
String name = “”;
// nameの値を取得する
if(hrnCursor.toChild(new QName(“http://www.blog.hr-next.co.jp/”, “name”, “hrn-blog”))){
name = hrnCursor.getTextValue();
hrnCursor.toParent();
}
newCursor.beginElement(“status”);
newCursor.insertElement(“name”, name);
newCursor.toNextToken();
}
hrnCursor.toNextToken();
XmlCursor.copyXmlやXmlCursor.copyXmlContentsは状況によってはきれいにコピーできるのですが接頭辞がついてきてしまうのでなかなか上手くいく場合とそうでない場合がありました。
結果思ったのは2のほうは結構ごり押しで作ったなと少し思いつつ今日もさいちゅうは元気です 😆
(ワードプレスのソースコードが設定欲しいなぁと実感しました 😳 プラグイン入れてくれないかなぁ)
後日談・・。もっと簡単な方法がありました。また機会がありましたら載せます。
=============================================
ヒューマンリレーションネクストでは、
未経験や新卒の方を積極的に採用しております。
「やりがい」のある環境で仲間と共に成長しながら働きませんか?
営業職(ITコンサルタント)
ITエンジニア(システム開発、インフラ)
http://hr-next.co.jp/index.php/recruit/250-2010-07-21-05-05-01.html
新卒の方はこちら【マイナビ2017】
https://job.mynavi.jp/17/pc/search/corp200795/outline.html
【リクナビ2017】はこちら
https://job.rikunabi.com/2017/company/top/m844110027/
==============================================
罠に嵌まる、、、
NURO光トラップって知ってますか?
こんばんは、マクドでのネット生活に安定し始めてきたシステム開発部でわnです。
Wimax2+を使ってフル活用しているが、3日で3GB制限がある上にでわnのように複数端末で一斉にアクセスするような人間に合わされていない、、、
でどうなるかというとほぼ何も出来ないw、、、
何がこんなにもでわnを苦しめる羽目になったのかというと、
NURO光トラップ
説明しよう
NURO光が使うのは光ファイバー
つまりは全国に光ファイバーを張り巡らせた業者に回線工事の手配をする必要がある。
で、NURO光が使う光回線を支える業者、、、
それはNTT。
え???NTT光って最大1Gbpsを謳っているのに2Gbps出るの?って疑問
でわnも不思議に思ってますw、1Gbps超えることなどあるのかなとw、、、
で代理店との手続き終わってここからがゴング開始
ちなみに申込みを行なったのは5月下旬w
今日で何日目なのかは不明、、、
一刻も早くネットが使いたいと言う状況なのにこれは手痛い。
工事が混雑しているという理由らしいけれど
NTTのBフレッツやら、auひかりを申し込んだら瞬時に終われせてくれるのではないの?きっとw
インターネット高速を求めるあまりにトラップに嵌まらないようご注意下さい。
はやくきてくれーネットオオオオオオォォォォォ!
ではでは。
=============================================
ヒューマンリレーションネクストでは、
未経験や新卒の方を積極的に採用しております。
「やりがい」のある環境で仲間と共に成長しながら働きませんか?
営業職(ITコンサルタント)
ITエンジニア(システム開発、インフラ)
http://hr-next.co.jp/index.php/recruit/250-2010-07-21-05-05-01.html
新卒の方はこちら【マイナビ2017】
https://job.mynavi.jp/17/pc/search/corp200795/outline.html
【リクナビ2017】はこちら
https://job.rikunabi.com/2017/company/top/m844110027/
==============================================