cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yan Min Sheng (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CXF-4836) ServiceImpl getPort does not need to throw Exception if the portName can not be found in portInfos
Date Tue, 12 Mar 2013 06:19:14 GMT

    [ https://issues.apache.org/jira/browse/CXF-4836?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13599753#comment-13599753
] 

Yan Min Sheng commented on CXF-4836:
------------------------------------

The JSR 224 spec has the following statement:

4.1 javax.xml.Service
Create a new port via the addPortmethod. Such ports only include binding and endpoint information
and are thus only suitable for creating Dispatch instances since these do not requireWSDL
port type
information.

So I do not think the exception should be thrown here as proxy is used in this case not dispatch.
                
> ServiceImpl getPort does not need to throw Exception if the portName can not be found
in portInfos
> --------------------------------------------------------------------------------------------------
>
>                 Key: CXF-4836
>                 URL: https://issues.apache.org/jira/browse/CXF-4836
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-WS Runtime
>    Affects Versions: 2.6.2
>            Reporter: Yan Min Sheng
>
> We create such client which will set target address info and binding info in RequestContext
of BindingProvider.
> 		String mtom11URL = "http://localhost:9080//MyBusiness/MTOM11Service";
> 		
> 		MTOMInterface port = null;
> 		BindingProvider bp = null;
> 		
> 		System.out.println("Looking up SOAP 1.1 MTOM service");
> 		QName serviceName = new QName("http://shengym.com/MyBusiness/","MTOM11Service");
> 		QName portName = new QName("http://shengym.com/MyBusiness", "MTOM11Port");
> 		// Setup the necessary JAX-WS artifacts
> 		Service svc = Service.create(serviceName);
> 		port = svc.getPort(portName, MTOMInterface.class);
> 		// Set the target URL
> 		bp = (BindingProvider) port;
> 		Map<String, Object> requestCtx = bp.getRequestContext();
> 		requestCtx.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,mtom11URL);
> 	
> 		// Enable MTOM
> 		SOAPBinding binding = (SOAPBinding) bp.getBinding();
> 		binding.setMTOMEnabled(true);
> However, it reports such error:
> javax.xml.ws.WebServiceException:Port{http://shengym.com/MyBusiness/}MTOM11Port not found.
> org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:332)
> org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:323)
> javax.xml.ws.Service.getPort(Service.java:134)
> I know that the added following code can fix this error:
> svc.addPort(portName, SOAPBinding.SOAP11HTTP_MTOM_BINDING, mtom11URL);
> Well, this error should not report even the addPort method is not called.
> I know the added check in ServiceImpl is to avoid run time error and report it as early
as possible. But I think it is not needed. The reasons are:
> 1. User can get run time error later;
> 2. User can set target addess info and bind info in other ways (as my example shows)
> I remove the check from the ServiceImpl then my client code works well. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message