- PR -

strutsとwicketを一緒に使いたい

1
投稿者投稿内容
タヌキ
会議室デビュー日: 2007/03/06
投稿数: 10
投稿日時: 2007-03-06 17:03
はじめましていつもお世話になっております、javaもこちらも初心者ですのですが宜しくお願い致します。
今回お聞きしたいのは下のコードでBase64に変換したいのですがstrutsで引っかかってしまいエラーが帰ってくるのですが何か対処法をご教授願いします。

package upload.action;

import java.net.*;
import java.io.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;

import wicket.util.crypt.Base64;


public class UploadAction extends Action {

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
request.setCharacterEncoding("Shift_JIS");
/*
* ファイルアップロード
*/
UploadForm uploadForm = (UploadForm) form;
FormFile ff = uploadForm.getFile1();
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
bis = new BufferedInputStream(ff.getInputStream());
bos = new BufferedOutputStream(new FileOutputStream(
"c:/Tomcat5.5/webapps/SExam/files/Before.zip"));
int b = 0;
while ((b = bis.read()) != -1) {
bos.write(b);
}
/*
* URLのインスタンスと接続
* この時点では接続していない
*/
URL url = new URL("http://localhost/");
HttpURLConnection urlconn = (HttpURLConnection) url.openConnection();
urlconn.setRequestMethod("POST");
HttpURLConnection.setFollowRedirects(false);
urlconn.setInstanceFollowRedirects(false);
urlconn.setRequestProperty("Accept-Language", "text/html; charset=Shift_JIS");

/*
*挿入するデータセット
*/
Map headers = urlconn.getHeaderFields();
Iterator it = headers.keySet().iterator();
while (it.hasNext()) {
String key = (String) it.next();
System.out.println(" " + key + ": " + headers.get(key));
}
System.out.println("\n---- ボディ ----");
/*
* ファイルをBASE64型に変換
*/
byte[] buff = ff.getFileData();
byte[] s = Base64.encodeBase64Chunked(buff);
ここの部分でエラーが出ているようです。

System.out.println("Base"+s);
urlconn.connect();//connectionを繋ぐ

実行後のエラー
HTTPステータス 500 -
type 例外レポート

メッセージ

説明 The server encountered an internal error () that prevented it from fulfilling this request.

例外
javax.servlet.ServletException: サーブレットの実行により例外を投げました

原因
java.lang.NoClassDefFoundError: wicket/util/crypt/Base64
upload.action.UploadAction.execute(UploadAction.java:70)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

色々な方法を試してみたのでが上手くいかなくて困ってます、誰か教えていただけないでしょうか、宜しくお願い致します。
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2007-03-06 17:15
NoClassDefFoundErrorですから、クラスパスがうまく通っていないのではないですか?
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-03-06 17:16
こちらが参考になるかもしれません。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=15194&forum=12
タヌキ
会議室デビュー日: 2007/03/06
投稿数: 10
投稿日時: 2007-03-06 17:40
nagise様インギ様早速の返答とヒントを頂いてありがとうございます。
参考のページで言われている様にwicketのクラスパスとwicket-extensions-1.2.5のクラスパスをあちこちに入れたら動くようになりました。
本当に助かりました、ありがとうございます。
Eclipse自体も最近会社で触り始めたばかりなので動かし方もよく解らないしこれからもちょくちょく利用させていただきますので宜しくお願い致します。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2007-03-06 18:02
解決したとのことで何よりですが、あちこちにライブラリを配置するとまた別の問題が起こる事もあります。
かのうな限り Web アプリケーションで必要なライブラリは WEB-INF/lib 以下に配置するようにしましょう。
1

スキルアップ/キャリアアップ(JOB@IT)