Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Web服务客户端错误_Java_Eclipse_Matlab_Web Services - Fatal编程技术网

Java Web服务客户端错误

Java Web服务客户端错误,java,eclipse,matlab,web-services,Java,Eclipse,Matlab,Web Services,我正在使用EclipseIDE创建一个JavaWeb服务服务器。该服务器如下所示 注意:我在UBUNTU中工作 package com.tesis.service; import java.util.concurrent.ExecutionException; import java.util.concurrent.RejectedExecutionException; import com.mathworks.engine.*; /** * @author root * */ pu

我正在使用EclipseIDE创建一个JavaWeb服务服务器。该服务器如下所示

注意:我在UBUNTU中工作

package com.tesis.service;

import java.util.concurrent.ExecutionException;
import java.util.concurrent.RejectedExecutionException;

import com.mathworks.engine.*;

/**
 * @author root
 *
 */
public class CNNPredict 
{
    public String cNNPredict(int[] Image, int Height, int Width) throws Exception
    {
        String FilePath =   "/home/user/Documents/MATLAB/Project";
        char[] CharFilePath = FilePath.toCharArray();
        MatlabEngine eng = MatlabEngine.startMatlab();
        eng.feval("cd", CharFilePath);
        String result = eng.feval("CNNPredict",Image,Height,Width);
        return result;
    }
}
正如你所看到的,我正在使用MATLAB引擎。 . 通过将CNNProdict方法复制到一个新的Java项目中,我检查了它是否正常工作,并且工作得非常好。 我将运行java引擎所需的.jar文件添加到web服务所在的动态web项目中

显然,这个web服务运行没有问题 如果我点击“cnnprodict”链接,我会得到类的wsdl方向,这个方向就是我用来链接客户机和服务器的方向

这是客户端代码:

public static void main(String[] args) throws IOException, CNNPredictExceptionException
{
    CNNPredictStub stub = new CNNPredictStub();
    CNNPredict cnn = new CNNPredict();
    BufferedImage img = null;
    System.out.println("Reading image ...");
    img = ImageIO.read(new File("/home/riosgamarra/Documents/MATLAB/TesisGamarrarios/101_ObjectCategories/laptop/image_0009.jpg"));
    int[] UnrolledImage = convertToGray(img);
    cnn.setImage(UnrolledImage);
    cnn.setWidth(img.getWidth());
    cnn.setHeight(img.getHeight());
    System.out.println(stub.cNNPredict(cnn).get_return());

}
它没有错误,但当我运行它时,会显示以下错误消息:

Exception in thread "main" org.apache.axis2.AxisFault: <faultstring>com/mathworks/engine/MatlabEngine</faultstring>
    at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:513)
    at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:368)
    at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:414)
    at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:225)
    at org.apache.axis2.client.OperationClient.execute(OperationClient.java:150)
    at com.tesis.service.CNNPredictStub.cNNPredict(CNNPredictStub.java:197)
    at com.tesis.client.CallWS.main(CallWS.java:40)
线程“main”org.apache.axis2.AxisFault中的异常:com/mathworks/engine/MatlabEngine 位于org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:513) 位于org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:368) 在org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:414)上 在org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:225)上 位于org.apache.axis2.client.OperationClient.execute(OperationClient.java:150) 位于com.tesis.service.CNNPredictStub.cNNPredict(CNNPredictStub.java:197) 位于com.tesis.client.CallWS.main(CallWS.java:40) 我错过了什么?是否需要向服务器项目添加任何特殊权限?我错过了什么

注意:我运行客户端,单击类并选择RunAs>Java应用程序

 at com.tesis.service.CNNPredictStub.cNNPredict(CNNPredictStub.java:197)
例外情况在哪里

public class CNNPredict 
{
    public String cNNPredict(int[] Image, int Height, int Width) throws Exception
    {
        String FilePath =   "/home/user/Documents/MATLAB/Project";
        char[] CharFilePath = FilePath.toCharArray();
        MatlabEngine eng = MatlabEngine.startMatlab();
        eng.feval("cd", CharFilePath);
        String result = eng.feval("CNNPredict",Image,Height,Width);
        return result;
    }
}

不是存根。首先,我们需要查看正确的代码。MatlabAPI是直截了当的。我的猜测是存根打错了电话

作为旁注。您是否以root用户身份编码?不好:-}你能说得更具体一点吗?我不知道“编码为根”是什么意思。谢谢/***@author root**/它在你发布的源代码中谢谢,现在我看到了,但是你能告诉我为什么这种情况会在代码中产生错误,或者如果我需要在项目中添加一些补充吗?我会发布我的评论以方便空间