質問するログイン新規登録

質問編集履歴

6

追記6

2019/10/01 07:47

投稿

kokok
kokok

スコア145

title CHANGED
File without changes
body CHANGED
@@ -297,4 +297,30 @@
297
297
  ObjectMapper ObjectMapper = new ObjectMapper();
298
298
 
299
299
  でインスタンス化させようとするとエラーになっているようです。
300
- 調べても解決出来なかったのでアドバイス頂けると助かります。
300
+ 調べても解決出来なかったのでアドバイス頂けると助かります。
301
+
302
+ --追記6--
303
+
304
+ 情報: Server version: Apache Tomcat/7.0.88 [火 10 01 16:43:27 JST 2019]
305
+ 情報: Server built: May 7 2018 11:12:57 UTC [火 10 01 16:43:27 JST 2019]
306
+ 情報: Server number: 7.0.88.0 [火 10 01 16:43:27 JST 2019]
307
+ 情報: OS Name: Windows 8.1 [火 10 01 16:43:27 JST 2019]
308
+ 情報: OS Version: 6.3 [火 10 01 16:43:27 JST 2019]
309
+ 情報: Architecture: amd64 [火 10 01 16:43:27 JST 2019]
310
+ 情報: Java Home: C:\pleiades\java\7\jre [火 10 01 16:43:27 JST 2019]
311
+ 情報: JVM Version: 1.7.0_80-b15 [火 10 01 16:43:27 JST 2019]
312
+ 情報: JVM Vendor: Oracle Corporation [火 10 01 16:43:27 JST 2019]
313
+ 情報: CATALINA_BASE: Dwtp.deploy=C:\pleiades\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps [火 10 01 16:43:27 JST 2019]
314
+ 情報: Command line argument: -Djava.endorsed.dirs=C:\pleiades\tomcat\7\endorsed [火 10 01 16:43:27 JST 2019]
315
+ 情報: Command line argument: -Dfile.encoding=UTF-8 [火 10 01 16:43:27 JST 2019]
316
+ 情報: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\pleiades\java\7\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/pleiades/eclipse/jre/bin/../jre/bin/server;C:/pleiades/eclipse/jre/bin/../jre/bin;C:/pleiades/eclipse/jre/bin/../jre/lib/amd64;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\skoga\Program Files (x86)\VMware\VMware vSphere CLI\Perl\site\bin;C:\skoga\Program Files (x86)\VMware\VMware vSphere CLI\Perl\bin;c:\Program Files (x86)\Intel\iCLS Client\;c:\Program Files\Intel\iCLS Client\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\3.0\bin\x64;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program \Local\atom\bin;C:\pleiades\eclipse;;. [火 10 01 16:43:27 JST 2019]
317
+ 情報: サービス Catalina を起動します [火 10 01 16:43:27 JST 2019]
318
+ 情報: Starting Servlet Engine: Apache Tomcat/7.0.88 [火 10 01 16:43:27 JST 2019]
319
+ 情報: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. [火 10 01 16:43:30 JST 2019]
320
+ 情報: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. [火 10 01 16:43:32 JST 2019]
321
+ 情報: Starting ProtocolHandler ["http-bio-8080"] [火 10 01 16:43:32 JST 2019]
322
+ 情報: Starting ProtocolHandler ["ajp-bio-8009"] [火 10 01 16:43:32 JST 2019]
323
+ 情報: Server startup in 4651 ms [火 10 01 16:43:32 JST 2019]
324
+ 重大: Servlet.service() for servlet [servlet.Userlist] in context with path [/webkensyu] threw exception [サーブレットの実行により例外を投げました] with root cause [火 10 01 16:43:35 JST 2019]
325
+
326
+ 内部サーバ起動時のコンソール情報

5

追記5

2019/10/01 07:47

投稿

kokok
kokok

スコア145

title CHANGED
File without changes
body CHANGED
@@ -291,4 +291,10 @@
291
291
 
292
292
  このような例だと上手くjqueryの方で受けっとってconsoleなどに出力できます。
293
293
 
294
- 原因が全然分からなかったので、アドバイス頂けると助かります。
294
+ 原因が全然分からなかったので、アドバイス頂けると助かります。
295
+
296
+ --追記5--
297
+ ObjectMapper ObjectMapper = new ObjectMapper();
298
+
299
+ でインスタンス化させようとするとエラーになっているようです。
300
+ 調べても解決出来なかったのでアドバイス頂けると助かります。

4

追記4

2019/10/01 05:42

投稿

kokok
kokok

スコア145

title CHANGED
File without changes
body CHANGED
@@ -156,4 +156,139 @@
156
156
 
157
157
  エラーが発生しました:error:
158
158
  internal Server Error
159
- とアラートされます。
159
+ とアラートされます。
160
+ --追記4--
161
+ 修正後コード
162
+
163
+ ```java
164
+ package servlet;
165
+ import java.io.IOException;
166
+ import java.io.PrintWriter;
167
+ import java.util.ArrayList;
168
+ import java.util.HashMap;
169
+ import java.util.List;
170
+ import java.util.Map;
171
+
172
+ import javax.servlet.ServletException;
173
+ import javax.servlet.annotation.WebServlet;
174
+ import javax.servlet.http.HttpServlet;
175
+ import javax.servlet.http.HttpServletRequest;
176
+ import javax.servlet.http.HttpServletResponse;
177
+
178
+ import com.fasterxml.jackson.databind.ObjectMapper;
179
+
180
+ import dao.USER_DB;
181
+ import model.UserDTO;
182
+
183
+
184
+ @WebServlet("/Userlist")
185
+ public class Userlist extends HttpServlet {
186
+ private static final long serialVersionUID = 1L;
187
+
188
+ public Userlist() {
189
+ super();
190
+ }
191
+
192
+ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
193
+
194
+ }
195
+
196
+ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
197
+
198
+ try {
199
+ request.setCharacterEncoding("UTF-8");
200
+
201
+ //ajaxのパラメータルリクエストを取得(中身"user")
202
+ String button = request.getParameter("one");
203
+
204
+ //if( button.equals("user")) {
205
+
206
+
207
+
208
+ //ユーザ情報をデータベースから取得するクラス
209
+ USER_DB user_db = new USER_DB();
210
+
211
+ //ユーザid と ユーザ名の値がセットさせたdtoクラスが格納させた配列を取得
212
+ ArrayList<UserDTO> userlist = (ArrayList<UserDTO>) user_db.getUser();
213
+
214
+
215
+ List<Integer> userId = new ArrayList<Integer>();
216
+ List<String> userName = new ArrayList<String>();
217
+
218
+
219
+ //ユーザIdを<Integer>型のListに入れ直し
220
+ for(int i = 0; i < userlist.size(); i++) {
221
+
222
+ userId.add(userlist.get(i).getId());
223
+ }
224
+
225
+ //ユーザNameを<String>型のListに入れ直し
226
+ for(int i = 0; i < userlist.size(); i++) {
227
+
228
+ userName.add(userlist.get(i).getName());
229
+ }
230
+
231
+
232
+
233
+ Map<String, String> userlists = new HashMap<>();
234
+
235
+ //MapのキーにユーザId, 値のNameをセット
236
+ for(int i= 0; i < userlist.size(); i++) {
237
+
238
+ userlists.put(String.valueOf(userId.get(i)), userName.get(i));
239
+ }
240
+
241
+ // JSONObject obj = new JSONObject(userlists);
242
+
243
+ String json = new ObjectMapper().writeValueAsString(userlists);
244
+ System.out.println(json);
245
+ PrintWriter out = response.getWriter();
246
+ out.print(json);
247
+
248
+ // Gson gson = new Gson();
249
+ // String json = gson.toJson(userName.get(0));
250
+
251
+
252
+ // PrintWriter out = response.getWriter();
253
+ // out.print(obj);
254
+
255
+
256
+
257
+ // Map<String, Object> map = new HashMap<>();
258
+ // map.put("name", "Taro Tanaka");
259
+ // map.put("age", 30);
260
+
261
+ //JSONObject obj = new JSONObject(map);
262
+
263
+ // PrintWriter out = response.getWriter();
264
+ // out.print(obj);
265
+
266
+ //out.close();
267
+
268
+ } catch(Exception e) {
269
+ e.printStackTrace();
270
+ }
271
+ }
272
+
273
+ }
274
+
275
+ ```
276
+
277
+ 修正後のコードを実行すると 
278
+
279
+ jquery.min.js:2 POST http://localhost:8080/webkensyu/Userlist 500 (Internal Server Error)
280
+
281
+ とエラーが出てしまいます。
282
+
283
+ PrintWriter out = response.getWriter();
284
+ out.print(json);
285
+ で、mapをjsonに変換したデータを文字列としてストリームに出力しています。
286
+
287
+ 例えば  String aaa = "aaa";
288
+
289
+ PrintWriter out = response.getWriter();
290
+ out.print(aaa);
291
+
292
+ このような例だと上手くjqueryの方で受けっとってconsoleなどに出力できます。
293
+
294
+ 原因が全然分からなかったので、アドバイス頂けると助かります。

3

追記3

2019/10/01 03:02

投稿

kokok
kokok

スコア145

title CHANGED
File without changes
body CHANGED
@@ -139,4 +139,21 @@
139
139
 
140
140
  エラーが発生しました:error:
141
141
  Not Found
142
+ とアラートされます。
143
+
144
+ --追記3--
145
+
146
+ Chromeコンソールには
147
+ POST http://localhost:8080/webkensyu/Userlist 500 (Internal Server Error)
148
+ send @ jquery.min.js:2
149
+ ajax @ jquery.min.js:2
150
+ (anonymous) @ kensyu.js:12
151
+ dispatch @ jquery.min.js:2
152
+ v.handle @ jquery.min.js:2
153
+ とエラーが出てしまいます。
154
+
155
+ 実行するとjquery の error : functionで
156
+
157
+ エラーが発生しました:error:
158
+ internal Server Error
142
159
  とアラートされます。

2

追記2

2019/09/30 09:53

投稿

kokok
kokok

スコア145

title CHANGED
File without changes
body CHANGED
@@ -105,4 +105,38 @@
105
105
  重大: Servlet.service() for servlet [servlet.Userlist] in context with path [/webkensyu] threw exception [サーブレットの実行により例外を投げました] with root cause [月
106
106
 
107
107
  javaでjsonを扱うために必要なことをネットで調べてみました。
108
- 自分なりに理解して書いてみたのですが、 コンソールエラーが何のエラーか分からず、対処出来ずにいます。
108
+ 自分なりに理解して書いてみたのですが、 コンソールエラーが何のエラーか分からず、対処出来ずにいます。
109
+
110
+
111
+ --追記2--
112
+ ```jquery
113
+ $('#user_list2').on('click',function(){
114
+
115
+ var val= $('#user_list').val();
116
+
117
+ $.ajax({
118
+
119
+ url:"Userlist",
120
+ type:"POST",
121
+ cache:false,
122
+ data:{'user':val},
123
+ // dataType:"json",
124
+ success: function(data){
125
+ userlist = data;
126
+ $("#test1").text(userlist);
127
+ },
128
+ error : function(XMLHttpRequest, textStatus, errorThrown) {
129
+ alert("エラーが発生しました:" + textStatus +":\n" + errorThrown);
130
+ }
131
+ });
132
+
133
+ });
134
+
135
+ ```
136
+
137
+
138
+ 実行するとjquery の error : functionで
139
+
140
+ エラーが発生しました:error:
141
+ Not Found
142
+ とアラートされます。

1

追記部分

2019/09/30 08:06

投稿

kokok
kokok

スコア145

title CHANGED
File without changes
body CHANGED
@@ -98,4 +98,11 @@
98
98
 
99
99
  上記のコードを実行すると  catch(Exception e)  されてしまいます。
100
100
 
101
- 調べても、原因が分からず解決出来なかったのでアドバイス頂けると助かります。
101
+ 調べても、原因が分からず解決出来なかったのでアドバイス頂けると助かります。
102
+
103
+ --追記--
104
+ コンソールエラー内容
105
+ 重大: Servlet.service() for servlet [servlet.Userlist] in context with path [/webkensyu] threw exception [サーブレットの実行により例外を投げました] with root cause [月
106
+
107
+ javaでjsonを扱うために必要なことをネットで調べてみました。
108
+ 自分なりに理解して書いてみたのですが、 コンソールエラーが何のエラーか分からず、対処出来ずにいます。