[Java, C#, Remoting, SOAP] NullReferenceException

Pagina: 1
Acties:

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Ik heb een vrij groot probleem met .NET Remoting. Ik denk niet dat veel mensen daar hier mee bezig zijn, maar omdat ik al twee dagen zit te prutsen probeer ik het toch maar...

Klein intro die eigenlijk niet relevant is voor de vraag: Ik ben bezig om in Java met RMI op basis van SOAP samen te werken met een (C#) .NET Remoting applicatie.

Ik heb nu een kleine hello world geschreven (die in beta 1 goed werkte), maar helaas faalt die nogal. Het punt is dat ik een 500 Internal Server Error krijg die wordt veroorzaakt door een System.NullReferenceException in .NET Remoting:
System.Runtime.Remoting.Channels.CoreChannel.DeserializeMessage.

Ik kan uit de inhoud van de exception echter absoluut niet opmaken wat ik verkeerd doe, zeker niet omdat mijn SOAP message al vrijwel hetzelfde is als een SOAP message vanuit een normale .NET Remoting client.

Heeft iemand een idee hoe ik met wat voor techniek dan ook kan achterhalen waardoor de NullReferenceException wordt veroorzaakt? Debuggen lijkt mij erg lastig omdat die code
dus gewoon een CLR lib zit :( .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Geen idee, gooi es een balletje op bij de dotnet mailing list? http://discuss.develop.com/dotnet.html

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Ah bedankt voor de tip... Had niet echt een idee waar ik daarmee terecht kon :) . Ik zal nog even doorprutsen en als het morgen nog niet lukt zal ik daar meer gebruik van moeten maken...

Misschien dat de SOAP message nog iets helpt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
HTTP/1.1 100 Continue?
?
HTTP/1.1 500 Internal Server Error?
Content-Type: text/xml; charset="utf-8"?
Server: MS .NET Remoting, MS .NET CLR 1.0.2914.16?
Content-Length: 1387?
Connection: Close?
?
<SOAP-ENV:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:a1="http://schemas.microsoft.com/clr/ns/System.Runtime.Serialization.Formatters">?
<SOAP-ENV:Body>?
<SOAP-ENV:Fault id="ref-1">?
<faultcode id="ref-2">SOAP-ENV:Server</faultcode>?
<faultstring id="ref-3"> **** System.NullReferenceException - Value null was found where an instance of an object was required.</faultstring>?
<detail xsi:type="a1:ServerFault">?
<exceptionType id="ref-4">System.NullReferenceException, mscorlib, Version=1.0.2411.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</exceptionType>?
<message href="#ref-3"/>?
<stackTrace id="ref-5">   at System.Runtime.Remoting.Channels.CoreChannel.DeserializeMessage(String mimeType, Stream xstm, Boolean methodRequest, IMessage msg, Header[] h)?
   at System.Runtime.Remoting.Channels.SoapServerFormatterSink.ProcessMessage(IServerChannelSinkStack sinkStack, ITransportHeaders requestHeaders, Stream requestStream, IMessage& msg, ITransportHeaders& responseHeaders, Stream& responseStream)</stackTrace>?
<exception xsi:null="1"/>?
</detail>?
</SOAP-ENV:Fault>?
</SOAP-ENV:Body>?
</SOAP-ENV:Envelope>?

Hum die vraag tekens zijn gewoon CR.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Hij doet het!!!

Ik gebruikte eerst een TCP tunnel met een AWT GUI om de communicatie te laten weergeven. Die kon echter absoluut niet met de gebruikte encodings omgaan (je zag de newlines niet goed). Ik heb hem toen maar omgezet naar Swing en toen zeg ik dat ik achter mijn request line in de eerste regel van de HTTP request nog \n had staan ipv \r\n |:( |:( dasnie volgens de HTTP standaard en .NET viel daarover (goed overigens). Wel jammer dat ze dan ipv een Bad Request een Internal Server Error opleveren, want dan zoek je niet zo snel in de goede richting.... :( .

Ik heb nu een HelloService interface in Java, een IHelloService in C# en een HelloService implementatie in C#.
De IHelloService wordt geregisteerd als een WellKnownService met als mode Singleton. Aan de Java wordt een RMI stub aangemaakt die communiceert mbv SOAP met deze service en klaar :) .

Goed ik ga weer vrolijk verder :) . Belachelijk dat je twee dagen bezig kunt zijn met het vinden van een \r :( .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment