- - PR -
axis上でのJMagick
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2004-01-13 17:55
JMagickを使ったWebサービスを構築しているのですが、どうしてもうまくいきません。
Webサービス自体もはじめてなので、うまく切り分けができず困っています。ご教授いただけたらと思います。 環境は以下です。 --- Windows XP Professional jmagick 5.5.6-0 imagemagick 5.5.6-Q16 tomcat 4.1 j2sdk1.4.1_04 axis 1.1 --- jmagick.jarは%TOMCAT_HOME%\webapps\axis\WEB-INF\lib 配下に、 jmagick.dllはC:\WINDOWS\System32 配下に配置しました。 サービスプログラムは以下です。 --- package test; import java.io.*; import java.util.*; import magick.*; public class MagickTest { private String result; public MagickTest(){ result = "output.jpg"; } public String getNavigationURL(String[] args){ int x1; int y1; try{ x1 = Integer.parseInt(args[0]); y1 = Integer.parseInt(args[1]); System.out.println(x1+","+y1); //背景画像ファイル読込 System.out.println("mapfile read start"); ImageInfo mapinfo = new ImageInfo("C:\\home\\image\\back.jpg"); System.out.println("mapfile read end"); //アイコンファイル読込 System.out.println("iconfile read start"); ImageInfo iconinfo1 = new ImageInfo("C:\\home\\image\\icon.gif"); System.out.println("iconfile read end"); //MagickImage作成 MagickImage image = new MagickImage(mapinfo); MagickImage icon1 = new MagickImage(iconinfo1); //icon合成 image.compositeImage(1, icon1, x1, y1); //イメージファイルのファイル名をセット(変更) image.setFileName("C:\\home\\image\\output.jpg"); //イメージファイルを作成 image.writeImage(mapinfo); }catch(MagickApiException mae){ System.out.println(mae.toString()); mae.printStackTrace(); }catch(MagickException me){ System.out.println(me.toString()); me.printStackTrace(); }catch(Exception e){ System.out.println(e.toString()); e.printStackTrace(); } return result; } } --- 上記をWSDDを作ってデプロイし、Java2WSDLとWSDL2Javaを使ってできたファイルを利用して、以下のクライアントプログラムを作成しました。 --- package MagickTestService_pkg; public class MagickTestClient { public static void main(String[] args) { try { MagickTestService myService = new MagickTestServiceLocator(); MagickTest myInstance = myService.getAxisServlet(); //((AxisServletSoapBindingStub)myInstance).setMaintainSession(true); System.out.println(myInstance.getNavigationURL(args)); } catch (Exception ex) { System.out.println(ex.toString()); ex.printStackTrace(); } } } --- 実行してみたところ、以下のエラーが出力されました。 --- java.lang.reflect.InvocationTargetException AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: java.lang.reflect.InvocationTargetException faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace: AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: java.lang.reflect.InvocationTargetException faultActor: faultNode: faultDetail: java.lang.reflect.InvocationTargetException at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:260) at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:169) at org.apache.axis.encoding.DeserializationContextImpl.endElement(DeserializationContextImpl.java:1015) (以下略) --- tomcatを起動したプロンプトに出力されたメッセージを見ると、"mapfile read start"以降が出力されていないようなので、JMagickのところから先に進んでいないようです。 その他、Exception等のメッセージは出力されていませんでした。 今のところ、 -JMagick自身 -上記サービスプログラムでJMagick使用部分を削除したもの は意図したとおり動作することを確認しています。 ご存知の方がいらっしゃいましたら、よろしくお願いいたします。 |
|
投稿日時: 2004-01-15 15:00
webサービス側で、Throwableをcatchするようにすると
SOAPのレスポンスがくるようになりました。 くだらない理由ですみません。 問題がもう少し具体的になりましたので、別スレッドを立てさせていただきます。 |
1
