Ik ben met een opdracht bezig waar ik een bestaande applicatie (in JSP/Java) moet nabootsen in ASP.NET 2.0 (De reden is even niet relevant).
Even een korte summary om het duidelijk te maken:
Het systeem bestaat uit een paar onderdelen:
Het gaat er dus om dat ik alleen de WEB GUI moet nabootsen in ASP.NET en dat deze gekoppeld moet worden aan de reeds bestaande JBOSS server.
Het is een soort van (web)service, maar er wordt hier geen gebruik gemaakt van WSDL of SOAP maar een eigen gemaakte XLM GUI die perfect werkt. (vraag me niet hoe, want het is niet van mij en niet relevant voor mijn vraag hier). Mijn opdracht is dus om hier een WEB GUI voor te maken.
Om te testen draait alles localhost zowel JBOSS, MySQL en Client.
Ik ben al een heel eind en ben op het punt gekomen waar ik verbinding wil maken via de GUI met de JBOSS server.
Ik maak hierbij gebruik van jscript. Ik zal een stukje hier neer zetten wat mss relevant is.
Wel zitten ze in verschillende files dus dit is niet uit 1 bestand
Ok na wat gepruts etc kwam ik erachter dat ik met een probleem zat. Duurde ff maar het probleem is dit:Functie open()
Link MSDN
Security Alert Cross-domain, cross-port, and mixed protocol requests are not allowed.
Mjah alles draait bij mij localhost: JBOSS localhost:8080, ASP.NET Client localhost:51345
Hmm niet cross-port compatible
!
Ok iemand gevraagd van het bestaande project en zij hadden hetzelfde probleem en hebben dit opgelost met een proxy servlet (HttpProxyServlet) en wat aanpassingen in de web.xml.
dit stond (vond ik) ook nog de web-config.xml (wellicht dat dit handig is voor mij...)
Ok en tjah .NET en servlets gaan niet samen, dus dan nu maar een proxy iets maken in C#.....
Paar tutorials gevonden, als asproxy en HTTPReverseProxy
Maar die zijn zo uitgebreid dat ik het enigzins met de vraag zit:
Kan dat niet makkelijker????
Ze gebruiken beide totaal verschillende aanpak en heb al verschillende dingen geprobeerd als <appSettings> toevoegen in config, heb gebruik gemaakt van System.Net als WebProxy en WebRequest. Maar tot u toe heb ik alleen te simpele dingen geprobeerd die op zichzelf nooit kunnen werken.
Ik heb bv dit geprobeerd:
en
Maar ik kom er niet helemaal uit... en vind die tutorials niet echt bepaald simpel
. Heb overigens wel de complete demos die te downloaden is bij die tutorials. Heb het gevoel dat ik wel redelijk in de goeie richting zit maar heb het "licht" nog niet helemaal gezien
Mijn vraag is dan ook wat moet ik precies doen om een proxy aan te maken??
Iemand een goede tip, demo, tut of hint?
Denk dat ik ff verder ga prutsen met die 2de tutorial HTTPReverseProxy aangezien die niet ingewikkeld oogt tov van de andere en is duidelijker geformuleerd. (btw alle comments zijn int frans
)
Alvast bedankt!
Even een korte summary om het duidelijk te maken:
Het systeem bestaat uit een paar onderdelen:
- Web GUI Client (in JSP(Struts)/Java)
- JBOSS Server met XML GUI
- MySQL DB
Het gaat er dus om dat ik alleen de WEB GUI moet nabootsen in ASP.NET en dat deze gekoppeld moet worden aan de reeds bestaande JBOSS server.
Het is een soort van (web)service, maar er wordt hier geen gebruik gemaakt van WSDL of SOAP maar een eigen gemaakte XLM GUI die perfect werkt. (vraag me niet hoe, want het is niet van mij en niet relevant voor mijn vraag hier). Mijn opdracht is dus om hier een WEB GUI voor te maken.
Om te testen draait alles localhost zowel JBOSS, MySQL en Client.
Ik ben al een heel eind en ben op het punt gekomen waar ik verbinding wil maken via de GUI met de JBOSS server.
Ik maak hierbij gebruik van jscript. Ik zal een stukje hier neer zetten wat mss relevant is.
Wel zitten ze in verschillende files dus dit is niet uit 1 bestand
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| //dit is het begin voor het aanroepen van de jboss server xmlGet('xml/login?id='+id+'&pass='+pass+'&GUI=WEB', loginHandler); //hier is de functie wordt aangeroepen (er zijn 2 verschillende Get en Post vandaar dat deze bestaat) function xmlGet(url, responseHandler) { xmlOpen("GET", encodeURI(url), null, responseHandler); } //deze functie zorgt voor die request function xmlOpen(method, url, toSend, responseHandler) { //... //...checks voor IE of FF requests[chosenIndex] = new XMLHttpRequest(); //... if (requests[chosenIndex]) { var handlerFunction = getResponseHandler(chosenIndex, responseHandler); requests[chosenIndex].onreadystatechange = handlerFunction; requests[chosenIndex].open(method, url, true); requests[chosenIndex].setRequestHeader("content-type", "application/x-www-form-urlencoded"); requests[chosenIndex].send(); } |
Ok na wat gepruts etc kwam ik erachter dat ik met een probleem zat. Duurde ff maar het probleem is dit:Functie open()
Link MSDN
Security Alert Cross-domain, cross-port, and mixed protocol requests are not allowed.
Mjah alles draait bij mij localhost: JBOSS localhost:8080, ASP.NET Client localhost:51345
Hmm niet cross-port compatible
Ok iemand gevraagd van het bestaande project en zij hadden hetzelfde probleem en hebben dit opgelost met een proxy servlet (HttpProxyServlet) en wat aanpassingen in de web.xml.
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
| <servlet> <servlet-name>proxy</servlet-name> <servlet-class>****.HttpProxyServlet</servlet-class> - <init-param> <param-name>config</param-name> <param-value>web.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>proxy</servlet-name> <url-pattern>/xml/*</url-pattern> </servlet-mapping> |
dit stond (vond ik) ook nog de web-config.xml (wellicht dat dit handig is voor mij...)
XML:
1
2
3
4
5
| <xml> <host>http://127.0.0.1</host> <port>8080</port> <path>xml</path> </xml> |
Ok en tjah .NET en servlets gaan niet samen, dus dan nu maar een proxy iets maken in C#.....
Paar tutorials gevonden, als asproxy en HTTPReverseProxy
Maar die zijn zo uitgebreid dat ik het enigzins met de vraag zit:
Kan dat niet makkelijker????
Ze gebruiken beide totaal verschillende aanpak en heb al verschillende dingen geprobeerd als <appSettings> toevoegen in config, heb gebruik gemaakt van System.Net als WebProxy en WebRequest. Maar tot u toe heb ik alleen te simpele dingen geprobeerd die op zichzelf nooit kunnen werken.
Ik heb bv dit geprobeerd:
C#:
1
2
3
| WebProxy proxyObject = new WebProxy("http://localhost:8080/", true); WebRequest req = WebRequest.Create("http://localhost:51345"); req.Proxy = proxyObject; |
en
XML:
1
2
3
4
5
| <system.net> <defaultProxy> <proxy proxyaddress="http://localhost:8080" bypassonlocal="true" usesystemdefault="false" /> </defaultProxy> </system.net> |
Maar ik kom er niet helemaal uit... en vind die tutorials niet echt bepaald simpel
Mijn vraag is dan ook wat moet ik precies doen om een proxy aan te maken??
Iemand een goede tip, demo, tut of hint?
Denk dat ik ff verder ga prutsen met die 2de tutorial HTTPReverseProxy aangezien die niet ingewikkeld oogt tov van de andere en is duidelijker geformuleerd. (btw alle comments zijn int frans
Alvast bedankt!
Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H