Service.getPort(SEI) must be able to retrieve a distinct port definition. Please show us your <service-ref> definitions
| /** | * Narrow available endpoints by <port-component-ref> declarations. | * Service.getPort(SEI) must be able to retrieve a distinct port definition. | */ | protected void narrowPortSelection(UnifiedServiceRefMetaData serviceRef, ServiceMetaData serviceMetaData) | { | if (serviceMetaData.getEndpoints().size() > 1) | { | Map<String, UnifiedPortComponentRefMetaData> pcrefs = new HashMap<String, UnifiedPortComponentRefMetaData>(); | for (UnifiedPortComponentRefMetaData pcref : serviceRef.getPortComponentRefs()) | { | String seiName = pcref.getServiceEndpointInterface(); | | // Constraint#1: within a service-ref it's not allowed to use a SEI across different pcref's | if (pcrefs.get(seiName) != null) | throw new WSException("Within a <service-ref> it's not allowed to use a SEI across different <port-component-ref>'s: " + seiName); | | pcrefs.put(seiName, pcref); | } | | // Constraint#2: A pcref may only match one EndpointMetaData | for (String sei : pcrefs.keySet()) | { | // Narrow available endpoints by port-component-ref declaration | List<QName> narrowedEndpoints = new ArrayList<QName>(); | | UnifiedPortComponentRefMetaData pcref = pcrefs.get(sei); | | // Constraint#3: Port selection only applies when both SEI and QName are given | if (pcref.getServiceEndpointInterface() != null && pcref.getPortQName() != null) | { | List<QName> pcRef2EndpointMapping = new ArrayList<QName>(); | for (EndpointMetaData epMetaData : serviceMetaData.getEndpoints()) | { | if (pcref.getServiceEndpointInterface().equals(epMetaData.getServiceEndpointInterfaceName())) | { | pcRef2EndpointMapping.add(epMetaData.getPortName()); | } | } | | for (QName q : pcRef2EndpointMapping) | { | EndpointMetaData mappedEndpoint = serviceMetaData.getEndpoint(q); | if (!pcref.getPortQName().equals(mappedEndpoint.getPortName())) | narrowedEndpoints.add(q); | } | | // Constraint: Dont exclude all of them ;) | if (pcRef2EndpointMapping.size() > 0 && (pcRef2EndpointMapping.size() == narrowedEndpoints.size())) | throw new WSException("Failed to narrow available endpoints by <port-component-ref> declaration"); | | for (QName q : narrowedEndpoints) | { | EndpointMetaData removed = serviceMetaData.removeEndpoint(q); | log.debug("Narrowed endpoint " + q + "(" + removed + ")"); | } | } | else | { | // TODO: In case there is more then one EMPD this should cause an exception | log.warn("Unable to narrow port selection for " + pcref); | } | } | } | } | View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4101849#4101849 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4101849 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user