2010-02-12 17 views
7

Estamos buscando integrar una aplicación completa de GWT (Google Web Toolkit 2.0) con una aplicación ASP.NET 3.5 existente. Mi primera reacción visceral es que esta es una horrible idea de Frankenstein. Sin embargo, el cliente ha insistido en que usemos esta aplicación desarrollada por un tercero.¿Está ejecutando una aplicación GWT (incluidos Applets) dentro de un IFRAME desde una aplicación ASP.NET 3.5?

No tengo casi CONTROL sobre el desarrollo de la aplicación GWT.

Mi primer pensamiento es intentar insertar esto en un iFrame. Como GWT se ejecuta en Tomcat/Yakarta, está alojado en un servidor diferente de la aplicación .NET, por lo que iFrame src estará en una URL en la otra máquina.

Necesito utilizar nuestro propio esquema de autorización ASP.NET para restringir el acceso a la aplicación GWT incorporada. La aplicación GWT también utiliza applets java incrustados, que no parecen funcionar ahora dentro del iframe. La aplicación GWT realiza llamadas a un servidor de back-end (usando GWT-RPC?).

¿Algún problema importante con este enfoque que cualquiera pueda ver? ¿GWT trabajará en un iframe mientras está alojado en una máquina diferente?

NOTA: ¡SIMPLEMENTE AGREGAR UN DIV CON EL MISMO NOMBRE NO FUNCIONA PARA ESTO!

Respuesta

6

Para exponer lo que Tony dijo, GWT puede vivir en cualquier página. En su nivel más bajo, GWT se engancha en un div por su ID o el elemento body, como su RootPanel, y le agrega widgets desde allí.

Simplemente agregue un div a su página ASP como <div id="gwt-root" /> y en su código GWT, comience con RootPanel root = RootPanel.get("gwt-root"). Luego puede comenzar a agregar widgets a ese panel para construir la porción GWT de su página.

También tendrá que llevar en su GWT Código generado con una etiqueta script, así:

<script type="text/javascript" src="gwt-app-name/gwt-app-name.nocache.js"> 

También, si lo desea, GWT puede interactuar con el resto de la página utilizando JavaScript regular usando JSNI.

+0

Tenga en cuenta en la pregunta original. No tengo acceso a la fuente original de GWT y está alojada en una máquina diferente, por lo que hacer lo que sugieres en realidad sería un problema de XSS ¿no? Como no puedo hacer referencia al archivo * .nocache.js en un servidor diferente. –

+2

Puede hacer referencia a un archivo JS desde cualquier sitio (siempre que el archivo sea legible). Simplemente cambie su etiqueta 'script' a una URL absoluta a' http: // otherserver.com/gwt-app-name/gwt-app-name.nocache.js'. Donde podría tener problemas es al hacer solicitudes GWT-RPC ... en ese caso, puede hacer lo que dice y ejecutar la aplicación GWT dentro de un iframe alojado en el otro servidor. –

1

no necesita un IFRAME. Escriba su aplicación para que el panel principal esté alojado dentro de un div con una identificación específica. Si su ASP.net puede proporcionar un div con el mismo ID, entonces todo lo que tiene que hacer es incluir los archivos JavaScript generados (+ algunas hojas de estilo) y su aplicación se mostrará dentro del div.

Cuestiones relacionadas