[J2EE/Web Services] Geen server side validatie

Pagina: 1
Acties:

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Topicstarter
Momenteel zit ik met een probleem wanneer ik een web service onder WebLogic deploy. Als ik de web service met foute data aanroep, (lees: required attributen niet meegegeven) wordt het bericht toch goedgekeurd. Dit wil ik niet, want deze XSD is de eerste validatielaag...

Is dit standaard gedrag, moet je server side XSD validaties specifiek aanzetten of ligt het aan WebLogic? Iemand een idee?

Het is btw een EJB endpoint onder WebLogic 9.1.

Stukje WSDL met attribuut:
XML:
1
<xsd:attribute name="code" type="xsd:string" use="required" />

Fat Pizza's pizza, they are big and they are cheezy


  • -FoX-
  • Registratie: Januari 2002
  • Niet online

-FoX-

Carpe Diem!

Zou het kunnen dat de WebLogic parser geen XSD validatie ondersteund?

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Topicstarter
Geen idee, ik weet niet of hij bij binnenkomende requests dezelfde parser gebruikt als bij het genereren van Java en zo, maar bij die dingen. wsdl2java, mapping file, deployment, app initialiseren, schreeuwt ie moord en brand als je ook maar het kleinste detail mist, dus dat klinkt wel een beetje als validatie.

Aan de andere kant liep ik ook al tegen het probleem aan dat ie geen xsd:import en enumerations ondersteunt, dus het kan best wel eens een gebrekkige parser zijn...

Ik weet alleen niet hoe ik kan opzoeken welke parser er gebruikt wordt en wat de specs zijn. (ben geen WebLogic fan ehh kenner :) en ook van hun site wordt ik niet veel wijzer)

Fat Pizza's pizza, they are big and they are cheezy


  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Topicstarter
Hmm, schijnbaar is het niet verplicht voor een WS endpoint om validaties uit te voeren. Ik heb het nu maar zelf in een message handler gecodeerd. Er is alleen één probleempje, een fout krijgt de soap:errorcode="soap:server" en dat is niet correct, want het zou soap:client moeten zijn.

Iemand een idee hoe je een exception op de server kunt vertalen naar een client fout?

- Een ander soort exception gooien dan nu? (momenteel gooi ik een JAXRPCException)
- In een handler o.i.d. de fout afvangen en de XML die ik teruggeef veranderen zodat de errorcode juist is.

Fat Pizza's pizza, they are big and they are cheezy