2010-11-26 14 views
0

Ich habe ein Problem beim Ausführen eines Java-Clients (mit Metro) gegen einen .NET STS- und sicheren Webdienst. Wenn ich jedoch meinen .NET-basierten Client ausführe, funktioniert es immer.HTTP-Metadatenanforderungen mit WSIT/JAX-WS

Wie Sie wahrscheinlich bereits wissen, fordert ein JAX-WS-Client während der Laufzeit Metadaten vom Dienst an (obwohl er während der Entwurfszeit bereits wsimport ausgeführt hat). Es scheint jedoch, dass diese Laufzeit-Metadatenanforderung mein Problem ist.

Das Problem, das mir gegenübersteht, ist, dass während der Laufzeitanforderungen von Metadaten einige WSDLs, die von meinem WCF-Dienst exportiert wurden, dazu führten, dass der Java-Client während der MX-Anforderungen einfach "hängen" musste. Wenn es hängt, kommt es nicht einmal zu dem Punkt, an dem die RST-Anforderung ausgegeben wird.

Zum Beispiel kann ich zu einer Stelle kommen, wo ich 9 [OperationContract] Attribute habe und es funktioniert. Aber wenn ich eine 10. Service-Methode hinzufüge, funktioniert es nicht. Wenn ich jedoch eine der 9 entferne, funktioniert es. Ich weiß, dass es bei einer bestimmten Methode kein Problem gibt, weil ich mischen und anpassen kann und das gleiche Muster hält.

Ich kann nicht scheinen, ein Muster oder Grund für warum einige WSDLs Arbeit und einige nicht abzuleiten. Ich bezweifle stark, dass die Anzahl der Service-Methoden begrenzt ist. Könnte dies jedoch ein Problem mit der "Gesamtkomplexität" der exportierten WSDL sein?

Hat jemand irgendwelche Ideen? Ist schon mal jemand auf dieses Problem gestoßen?

Wenn mehr Informationen benötigt werden, kann ich es posten. Ich versuche nur, den Anfangsposten überschaubar zu halten.

Ich werde auch hinzufügen, dass ich die STS und gesichert Web-Service in .NET 4 laufen, und sie basieren auf WIF (so muss ich nicht über Sicherheitseinstellungen kümmern). Mein .NET-Client ist auch .NET 4. Auf der Java-Seite verwende ich Netbeans 6.9.1 mit Metro 2.1, auf dem Glassfish 3 läuft. Ich habe festgestellt, dass das gleiche Problem bei Metro 2.0 auftritt.

Antwort

0

Nach dem angegebenen Beispiel besteht die Möglichkeit, dass das Limit MaxMessageReceivedSize oder MaxStringContentLength erreicht ist. Haben Sie versucht, die Werte von MaxMessageReceivedSize und MaxStringContentLength für die Bindung zu erhöhen? Sie können versuchen, WCF-Traces zu aktivieren. Wenn ein solches Limit erreicht wird, wird eine Warnung protokolliert.

+0

Vielen Dank für Ihre Antwort, aber ich habe keine Probleme beim Abrufen von Metadaten in .NET (entweder durch Hinzufügen einer Service-Referenz oder direkte Verwendung von SVCutil). Mein Problem ist, dass Java Metadaten während der Laufzeit holt. Ich habe auch eine benutzerdefinierte mex-Bindung erstellt, die die angegebenen Werte erhöht, und es funktioniert immer noch nicht. – pdalbe01