Tema viejo, lo sé ... pero he creado un pequeño truco que le permite servir applets que están dentro de su carpeta WEB-INF/clases para que no necesite un frasco adicional en su proyecto (y puede volver a implementar su applet un poco más rápido). La desventaja de esto es que no puedes firmar tu applet (porque es una clase. No un contenedor). Vamos al grano aquí ...
En primer lugar, crear un poco de servlet que sirve applets (Requiere Javassist):
public class AppletServlet implements Servlet {
...
ClassPool pool = ClassPool.getDefault();
@Override
public void init(ServletConfig config) throws ServletException {
pool.insertClassPath(new ClassClassPath(this.getClass()));
}
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
String className = ((HttpServletRequest) req).getPathInfo().substring(1);
try {
CtClass cc = pool.get(className.replace("/", ".").replace(".class", ""));
res.setContentType("application/x-java-applet;version=1.5.0");
res.setContentLength(cc.toBytecode().length);
res.getOutputStream().write(cc.toBytecode());
res.getOutputStream().close();
} catch (Exception e) {
e.printStackTrace();
}
}
...
}
Ahora declarar su AppletServlet (lo sé, nombre terrible) como un servlet en su web.xml:
<servlet>
<servlet-name>Applet Servlet</servlet-name>
<servlet-class>com.example.AppletServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Applet Servlet</servlet-name>
<url-pattern>/applet/*</url-pattern>
</servlet-mapping>
Por último, invocar el applet desde su página:
<object type="application/x-java-applet" height="300" width="550">
<param name="codebase" value="applet/" />
<param name="code" value="com.example.MyApplet" />
<param name="teste" value="teste"></param>
Applet failed to run. No Java plug-in was found.
</object>
Y eso es todo. El servlet usará Javassist para obtener el código de bytes para su clase y servirlo a la solicitud.
Descargo de responsabilidad Si alguien conoce su estructura de paquete, podría descargar todas las clases y hacer cosas malas desde allí. Así que asegúrese de que solo permita que el servlet sirva clases que en realidad son applets.
Muestra la etiqueta completa
– chetan
esta es la etiqueta applete que utilicé – chetan