2

I am doing a project in java called visual speech recognition . while iam trying to run the below code in eclipse indigo..

package main.java.edu.lipreading;

import com.googlecode.javacpp.BytePointer;
import com.googlecode.javacv.cpp.opencv_core;
import main.java.edu.lipreading.vision.AbstractFeatureExtractor;
import main.java.edu.lipreading.vision.NoMoreStickersFeatureExtractor;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.nio.SelectChannelConnector;
import org.eclipse.jetty.websocket.WebSocket;
import org.eclipse.jetty.websocket.WebSocketHandler;

import javax.servlet.http.HttpServletRequest;
import java.io.ByteArrayOutputStream;
import java.util.List;
import java.util.logging.Logger;

import static com.googlecode.javacv.cpp.opencv_core.CV_8UC1;
import static com.googlecode.javacv.cpp.opencv_core.cvMat;
import static com.googlecode.javacv.cpp.opencv_highgui.cvDecodeImage;

/**
 * Created with IntelliJ IDEA.
 * User: Sagi
 * Date: 25/04/13
 * Time: 21:47
 */
public class WebFeatureExtractor extends Server {

    private final static Logger LOG = Logger.getLogger(WebFeatureExtractor.class.getSimpleName());
    private final static AbstractFeatureExtractor fe = new NoMoreStickersFeatureExtractor();

    public WebFeatureExtractor(int port) {
        SelectChannelConnector connector = new SelectChannelConnector();
        connector.setPort(port);
        addConnector(connector);

        WebSocketHandler wsHandler = new WebSocketHandler() {
            public WebSocket doWebSocketConnect(HttpServletRequest request, String protocol) {
                return new FeatureExtractorWebSocket();
            }
        };
        setHandler(wsHandler);
    }

    /**
     * Simple innerclass that is used to handle websocket connections.
     *
     * @author jos
     */
    private static class FeatureExtractorWebSocket implements WebSocket, WebSocket.OnBinaryMessage, WebSocket.OnTextMessage {

        private Connection connection;


        public FeatureExtractorWebSocket() {
            super();
        }

        /**
         * On open we set the connection locally, and enable
         * binary support
         */
        @Override
        public void onOpen(Connection connection) {
            LOG.info("got connection open");
            this.connection = connection;
            this.connection.setMaxBinaryMessageSize(1024 * 512);
        }

        /**
         * Cleanup if needed. Not used for this example
         */
        @Override
        public void onClose(int code, String message) {
            LOG.info("got connection closed");
        }

        /**
         * When we receive a binary message we assume it is an image. We then run this
         * image through our face detection algorithm and send back the response.
         */
        @Override
        public void onMessage(byte[] data, int offset, int length) {
            //LOG.info("got data message");
            ByteArrayOutputStream bOut = new ByteArrayOutputStream();
            bOut.write(data, offset, length);
            try {
                String result = convert(bOut.toByteArray());
                this.connection.sendMessage(result);
            } catch (Exception e) {
                LOG.severe("Error in facedetection, ignoring message:" + e.getMessage());
            }
        }

        @Override
        public void onMessage(String data) {
            LOG.info("got string message");
        }
    }
    public static String convert(byte[] imageData) throws Exception {
        opencv_core.IplImage originalImage = cvDecodeImage(cvMat(1, imageData.length, CV_8UC1, new BytePointer(imageData)));
        List<Integer> points = fe.getPoints(originalImage);
        if(points == null)
            return "null";
        String ans = "";
        for (Integer point : points) {
            ans += point + ",";
        }
        return ans;
    }



    /**
     * Start the server on port 999
     */
    public static void main(String[] args) throws Exception {
        WebFeatureExtractor server = new WebFeatureExtractor(9999);
        server.start();
        server.join();
    } 
}

i am getting this error..

Exception in thread "main" java.lang.VerifyError: class org.eclipse.jetty.server.nio.AbstractNIOConnector overrides final method newBuffer.(I)Lorg/eclipse/jetty/io/Buffer;
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(Unknown Source)
    at java.security.SecureClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at main.java.edu.lipreading.WebFeatureExtractor.<init>(WebFeatureExtractor.java:33)
    at main.java.edu.lipreading.WebFeatureExtractor.main(WebFeatureExtractor.java:118)

i got dis code from https://github.com/sagioto/LipReading/blob/master/lipreading-core/src/main/java/edu/lipreading/WebFeatureExtractor.java.. can anyone help me plz..

user3142080
  • 21
  • 1
  • 2

1 Answers1

1

java.lang.VerifyError can happen if you're running against a different version of a library than the code was compiled against.

Looking in the github repository, I see the files are dated 25 April 2013. Apparently, Jetty has received an update during these last 10 months. Find the version of Jetty that was current on that date and try again.

MarsAtomic
  • 10,436
  • 5
  • 35
  • 56