[jboss-user] [JBossWS] - SwA and

jesla do-not-reply at jboss.com
Mon Aug 7 06:03:26 EDT 2006


Hi,

I am experimenting with SOAP with attachments and JSR-181 EJB endpoint. My endpoint deploys seemingly well with following metadata:

2006-08-07 12:01:57,593 DEBUG [org.jboss.ws.deployment.JSR181MetaDataBuilderEJB3] END buildMetaData: 
  | UnifiedMetaData: 
  |  securityDomain: null
  | 
  | ServiceMetaData:
  |  name={http://ejb.swa/jaws}SwaTestBeanService
  |  wsdName=null
  |  wsdlFile=META-INF/wsdl/SwaTestWsdl.wsdl
  |  jaxrpcFile=null
  |  publishLocation=null
  |  properties=null
  | 
  | TypesMetaData: 
  | [complexType={http://www.w3.org/2005/05/xmlmime}base64Binary,javaType=java.awt.Image]
  | 
  | ServerEndpointMetaData:
  |  name={http://ejb.swa/jaws}SwaTestBeanPort
  |  id=jboss.ws:context=swa,endpoint=SwaTestBean
  |  address=http://substanssi:8080/swa/SwaTestBean
  |  linkName=SwaTestBean
  |  implName=swa.ejb.SwaTestBean
  |  seiName=swa.ejb.SwaTestBean
  |  annotated=true
  |  portComponentName=null
  |  contextRoot=/swa
  |  urlPattern=/SwaTestBean
  |  configFile=null
  |  configName=null
  |  authMethod=null
  |  transportGuarantee=null
  |  properties=null
  | 
  | OperationMetaData:
  |  xmlName={http://ejb.swa/jaws}sendImage
  |  javaName=sendImage
  |  style=rpc/literal
  |  oneWay=false
  |  soapAction=
  | ParameterMetaData:
  |  xmlName=image
  |  xmlType={http://www.w3.org/2005/05/xmlmime}base64Binary
  |  javaType=java.awt.Image
  |  mode=IN
  |  inHeader=false

But when I send an image to the service I get the following warning and error:

2006-08-07 12:11:45,187 WARN  [org.jboss.ws.metadata.jaxrpcmapping.JavaWsdlMapping] Cannot find jaxrpc-mapping for type: {http://www.w3.org/2005/05/xmlmime}base64Binary
  | 2006-08-07 12:11:45,187 DEBUG [org.jboss.ws.jaxrpc.encoding.SerializationContextImpl] Add type mapping: [qname={http://www.w3.org/2005/05/xmlmime}base64Binary,javaType=javax.mail.internet.MimeMultipart,scope=complexType]
  | 2006-08-07 12:11:45,187 WARN  [org.jboss.ws.jaxb.SchemaBindingBuilder] Type definition not found in schema: {http://www.w3.org/2005/05/xmlmime}base64Binary
  | 2006-08-07 12:11:45,187 WARN  [org.jboss.ws.jaxb.SchemaBindingBuilder] Cannot obtain type binding for: {http://www.w3.org/2005/05/xmlmime}base64Binary
  | 2006-08-07 12:11:45,187 DEBUG [javax.xml.rpc.soap.SOAPFaultException] new SOAPFaultException [code={http://schemas.xmlsoap.org/soap/envelope/}Client,string=Root type {http://www.w3.org/2005/05/xmlmime}base64Binary not found in the schema.,actor=null,detail=null]
  | 2006-08-07 12:11:45,187 ERROR [org.jboss.ws.jaxrpc.SOAPFaultExceptionHelper] SOAP request exception
  | org.jboss.ws.WSException: Root type {http://www.w3.org/2005/05/xmlmime}base64Binary not found in the schema.
  | 	at org.jboss.ws.jaxb.SchemaBindingBuilder.bindParameterToElement(SchemaBindingBuilder.java:426)
  | 	at org.jboss.ws.jaxb.JBossXBSupport.getOrCreateSchemaBinding(JBossXBSupport.java:72)
  | 	at org.jboss.ws.jaxb.JBossXBUnmarshallerImpl.unmarshal(JBossXBUnmarshallerImpl.java:59)
  | 	at org.jboss.ws.jaxrpc.encoding.JAXBDeserializer.deserialize(JAXBDeserializer.java:92)
  | 	at org.jboss.ws.soap.SOAPContentElement.getObjectValue(SOAPContentElement.java:229)
  | 	at org.jboss.ws.binding.EndpointInvocation.transformPayloadValue(EndpointInvocation.java:233)
  | 	at org.jboss.ws.binding.EndpointInvocation.getRequestParamValue(EndpointInvocation.java:103)
  | 	at org.jboss.ws.binding.EndpointInvocation.getRequestPayload(EndpointInvocation.java:117)

Does anyone have any idea, why the binding cannot be obtained ? I also wonder why do I get base64Binary as a xmlType (see metadata listing above) in a first place. After all, I've defined the data type as xsd:hexBinary (see wsdl below)?

Regards, Matti


Endpoint implementation:
package swa.ejb;
  | 
  | import java.awt.Image;
  | import javax.ejb.Stateless;
  | import javax.jws.WebMethod;
  | import javax.jws.WebParam;
  | import javax.jws.WebService;
  | import javax.jws.soap.SOAPBinding;
  | import javax.jws.soap.SOAPBinding.Style;
  | import org.apache.log4j.Logger;
  | 
  | @Stateless
  | @WebService(wsdlLocation="META-INF/wsdl/SwaTestWsdl.wsdl")
  | @SOAPBinding(style=Style.RPC)
  | public class SwaTestBean {
  | 
  | 	static Logger log = Logger.getLogger(SwaTestBean.class);
  | 
  | 	@WebMethod public void sendImage(@WebParam(name="image") Image image) {
  | 		log.info("sendImage...");
  | 	}
  | }

wsdl file:
<definitions name='SwaTestBeanService'
  | 	targetNamespace='http://ejb.swa/jaws'
  | 	xmlns='http://schemas.xmlsoap.org/wsdl/'
  | 	xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'
  | 	xmlns:tns='http://ejb.swa/jaws'
  | 	xmlns:xsd='http://www.w3.org/2001/XMLSchema' 
  | 	xmlns:mime='http://schemas.xmlsoap.org/wsdl/mime/'>
  | 	
  | 	<types/>
  | 	
  | 	<message name='SwaTestBean_sendImageResponse' />
  | 
  | 	<message name='SwaTestBean_sendImage'>
  | 		<part name='image' type='xsd:hexBinary' />
  | 	</message>
  | 
  | 	<portType name='SwaTestBean'>
  | 		<operation name='sendImage'>
  | 			<input message='tns:SwaTestBean_sendImage' />
  | 			<output message='tns:SwaTestBean_sendImageResponse' />
  | 		</operation>
  | 	</portType>
  | 
  | 	<binding name='SwaTestBeanBinding' type='tns:SwaTestBean'>
  | 		<soap:binding style='rpc'
  | 			transport='http://schemas.xmlsoap.org/soap/http' />
  | 		<operation name='sendImage'>
  | 			<soap:operation soapAction='' />
  | 			<input>
  | 				<mime:multipartRelated>
  | 					<mime:part>
  | 						<soap:body use="literal" />
  | 					</mime:part>
  | 					<mime:part>
  | 						<mime:content part="image" type="image/jpeg" />
  | 					</mime:part>
  | 				</mime:multipartRelated>
  | 			</input>
  | 			<output>
  | 				<soap:body use='literal' />
  | 			</output>
  | 		</operation>
  | 	</binding>
  | 
  | 	<service name='SwaTestBeanService'>
  | 		<port binding='tns:SwaTestBeanBinding' name='SwaTestBeanPort'>
  | 			<soap:address
  | 				location='http://substanssi:8080/swa/SwaTestBean' />
  | 		</port>
  | 	</service>
  | 
  | </definitions>

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3963511#3963511

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3963511



More information about the jboss-user mailing list