gpt4 book ai didi

java - CodeNameOne 将图像上传到 servlet 时出现 StateMachine 问题

转载 作者:太空宇宙 更新时间:2023-11-04 12:58:54 24 4
gpt4 key购买 nike

我一周前开始使用 CodeNameOne,所以对这种和这些类型的框架非常陌生,我正在尝试使用演示 UploadServlet 将图像上传到 servlet,我已经在 PhotoShare 演示中正常工作,尽管我发现很难使用我使用 CodeNameOne GUI Designer 和 StateMachine 类构建的应用程序上传。

任何人都可以指出我需要对这里的代码做什么,如果我排队并等待,postResponse 似乎会立即触发,这似乎并不重要。

提前致谢

错误:

Done probably too early
[EDT] 0:0:0,0 - Exception: java.lang.NullPointerException - null
java.lang.NullPointerException
at userclasses.StateMachine$2.postResponse(StateMachine.java:756)
at com.codename1.io.ConnectionRequest$1.run(ConnectionRequest.java:459)
at com.codename1.ui.Display.processSerialCalls(Display.java:1149)
at com.codename1.ui.Display.edtLoopImpl(Display.java:1093)
at com.codename1.ui.Display.invokeAndBlock(Display.java:1203)
at com.codename1.ui.Display.invokeAndBlock(Display.java:1241)
at com.codename1.io.NetworkManager.addToQueueAndWait(NetworkManager.java:596)
at userclasses.StateMachine.onRecordStyle_CaptureImagesAction(StateMachine.java:772)
at generated.StateMachineBase.handleComponentAction(StateMachineBase.java:1478)
at com.codename1.ui.util.UIBuilder$FormListener.actionPerformed(UIBuilder.java:2831)
at com.codename1.ui.util.EventDispatcher.fireActionEvent(EventDispatcher.java:345)
at com.codename1.ui.Button.fireActionEvent(Button.java:397)
at com.codename1.ui.Button.released(Button.java:428)

代码:

// Record Style Form - Capture Images Button -- WIP
@Override
protected void onRecordStyle_CaptureImagesAction(Component c, ActionEvent event) {

// Clear out the existing imageList
//imageList = null;

// Loop over the number of photos allowed for each record
for (int i=0; i < maxImageUploads; i++) {

// Capture and add
String picture = Capture.capturePhoto(1024, -1);

System.out.println(picture);

if (picture != null) {

MultipartRequest mp = new MultipartRequest() {
private long key;

@Override
protected void readResponse(InputStream input) throws IOException {
DataInputStream di = new DataInputStream(input);
System.out.println("Done, probably too early!! :(");
key = di.readLong();
}

@Override
protected void postResponse() {
imageList.addImageId(key);
}

};

try {
String uuid = WebServiceProxy.getUUID();
mp.setUrl(apiURL + "/upload");
mp.addData(uuid + ".jpg", picture, "image/jpeg");
mp.addArgument("p", uuid + ":" + Preferences.get("clientUUID", "") + ":" + Preferences.get("companyUUID", ""));
//mp.addArgument("UUID", uuid);
//mp.addArgument("Client", Preferences.get("clientUUID", ""));
//mp.addArgument("Company", Preferences.get("companyUUID", ""));
InfiniteProgress prog = new InfiniteProgress();
Dialog dlg = prog.showInifiniteBlocking();
mp.setDisposeOnCompletion(dlg);
NetworkManager.getInstance().addToQueueAndWait(mp);

System.out.println("Added to queue");

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
// After capture ask to take another other than the last time
if ( i < maxImageUploads - 1) {
if (!Dialog.show("QR", "Capture image #" + (i + 2) + " ?" , "OK", "Finished")) {
// Break out of loop if user decides
i = maxImageUploads;
}
}
}
}

最佳答案

您的imageList变量为空,您在postResponse中添加到它。

从堆栈跟踪中可以很清楚地看出。

供将来引用,注释代码中与堆栈跟踪中的行号相匹配的行号通常很有帮助。例如。说这样的话:

Line 756 is:

imageList.addImageId(key);                    

关于java - CodeNameOne 将图像上传到 servlet 时出现 StateMachine 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35109947/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com