Как отобразить java.awt.Image на HTML-странице - PullRequest
0 голосов
/ 27 марта 2019

Сначала я работал только с java, чтобы восстановить изображение робота и отобразить его в JFrame, но после этого я хотел закодировать эту процедуру в качестве сервисного wb-отдыха, который предоставляет изображение, захваченное роботом, а затем отображать его встраница htmp после вызова службы, поэтому формат захваченного изображения - java.awt.Image, но после развертывания и проверки службы я получаю ошибку 500, так что какой правильный формат он возвращает, возвращаемый веб-службой, чтобы отобразить его вhtml page

Сначала нам нужно создать экземпляр объекта класса робота и создать класс слушателя, который реализует метод для периодического захвата изображения робота, и я сохраняю его в глобальной переменной в сервисе.Я подключаюсь к роботу и привязываю слушателя к нему.

@Stateless 
@Path("emp.com.classes.rbt") 
public class Robotino extends emp.com.rest.AbstractFacade<emp.com.classes.rbt> {

    protected static final float speed = 0.2f;
    protected static final float rotSpeed = 2f;
    protected static final Robot robotino = new Robot();

    Timer _timer;
    private float vx=0.2f;
    private float vy=0.0f;
    private float omega=0.0f;
    int i=0;
    public volatile Image cameraImg;
    public BufferedImage retImg;

    public Robotino() {
        super(emp.com.classes.rbt.class);    
    }

    class OnTimeOut extends TimerTask
    {
        public void run()
        {
            robotino.setVelocity( vx, vy, omega );
            i++;
        }
    }

    private class RobotListenerImpl implements RobotListener
    {
        @Override
        public void onImageReceived(Image img)
        {
            cameraImg = img;
        }   

        @Override
        public void onConnected()
        {
        }

        @Override
        public void onDisconnected()
        {
        }

        @Override
        public void onError(String error)
        {
        }

        @Override
        public void onOdometryReceived(double x, double y, double phi)
        {           
        }
    }

    /**
     * Retrieves representation of an instance of emp.rest.Zplug
     * @return an instance of java.lang.String
     * @throws java.io.IOException
     */

    @GET
    @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, MediaType.TEXT_HTML})
    @Path("camera")
    public  Image  camera() throws IOException {
        robotino.connect("127.0.0.1:12080", false);
        robotino.addListener( new RobotListenerImpl() );
        retImg=(BufferedImage) cameraImg;
        return retImg;

    }

    @Override
    protected EntityManager getEntityManager() {
        throw new UnsupportedOperationException("Not supported yet."); 
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...