[ https://issues.apache.org/jira/browse/CXF-1746?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Bjorn Harvold updated CXF-1746: ------------------------------- This is will be of interest as it didn't use to be this way: Server log: Aug 13, 2008 1:26:54 PM org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass INFO: Creating Service {http://impl.ws.web.globalhealth.hxcel.com/}UserWebService from class com.hxcel.globalhealth.web.ws.UserWebService Aug 13, 2008 1:26:54 PM org.apache.cxf.endpoint.ServerImpl initDestination INFO: Setting the server's publish address to be /UserWebService Aug 13, 2008 1:26:55 PM org.apache.cxf.endpoint.ServerImpl initDestination INFO: Setting the server's publish address to be /ReferenceDataWebService Aug 13, 2008 1:26:55 PM org.apache.cxf.endpoint.ServerImpl initDestination INFO: Setting the server's publish address to be /PhrWebService It used to create a service for every web service. Now it's creating one and publishing that one to many endpoints. > Multiple published services all reference the first exported spring web > service > -------------------------------------------------------------------------------- > > Key: CXF-1746 > URL: https://issues.apache.org/jira/browse/CXF-1746 > Project: CXF > Issue Type: Bug > Components: Configuration > Affects Versions: 2.1.1 > Environment: Mac OSX, 10.5.4, JDK 1.6.0_5, Spring 2.5.5, CXF 2.1.1 > Reporter: Bjorn Harvold > > Hi, > I've been working with CXF since the incubator stage. Before that I was an > xfire user. My multiple web services have been successfully published on > earlier version of CXF. I THINK this issue is associated with v2.1.1. > Here are my services configured in spring: > <!-- ============================== WEB SERVICE END > POINT============================== --> > <jaxws:endpoint id="cxf_UserWebService" > implementor="#userWebService" > address="/UserWebService"> > <jaxws:serviceFactory> > <ref bean="serviceFactory"/> > </jaxws:serviceFactory> > </jaxws:endpoint> > <jaxws:endpoint id="cxf_ReferenceDataWebService" > implementor="#referenceDataWebService" > address="/ReferenceDataWebService"> > <jaxws:serviceFactory> > <ref bean="serviceFactory"/> > </jaxws:serviceFactory> > </jaxws:endpoint> > <!-- ============================== WEB SERVICE END > POINT============================== --> > <!-- ============================== WEB SERVICE > ============================== --> > <bean id="userWebService" > class="com.hxcel.globalhealth.web.ws.impl.UserWebServiceImpl" > parent="abstractWebService"> > <property name="resourceBundle" value="errors"/> > <property name="description" value="${application.user.description}"/> > <property name="name" value="${application.user.name}"/> > <property name="shortName" value="${application.user.name.short}"/> > </bean> > <bean id="referenceDataWebService" > class="com.hxcel.globalhealth.web.ws.impl.ReferenceDataWebServiceImpl" > parent="abstractWebService"> > <property name="description" value="${application.phr.description}"/> > <property name="name" value="${application.referencedata.name}"/> > <property name="shortName" > value="${application.referencedata.name.short}"/> > </bean> > <!-- ============================== WEB SERVICE > ============================== --> > Here are the interfaces: > @WebService > public interface UserWebService { > @WebMethod > @WebResult(name = "User") > UserDto getUser(@WebParam(name="id") String id) throws Fault; > @WebMethod > UserDto saveNewUser(@WebParam(name = "dto")UserDto dto) throws Fault; > @WebMethod > @WebResult(name = "isUsernameTaken") > Boolean isUsernameTaken(@WebParam(name="username") String username) > throws Fault; > @WebMethod > @WebResult(name = "isUserUnique") > Boolean isUserUnique(@WebParam(name = "id") String id, > @WebParam(name="username") String username) throws Fault; > @WebMethod > @WebResult(name = "User") > UserDto login(@WebParam(name = "username") String username, > @WebParam(name="password") String password) throws Fault; > } > @WebService > public interface ReferenceDataWebService { > @WebMethod > @WebResult(name = "AdvanceDirectiveType") > AdvanceDirectiveTypeCd[] getAdvanceDirectiveTypes(); > @WebMethod > @WebResult(name = "AllergyReactionType") > AllergyReactionTypeCd[] getAllergyReactionTypes(); > @WebMethod > @WebResult(name = "AllergyType") > AllergyTypeCd[] getAllergyTypes(); > @WebMethod > @WebResult(name = "AlternativeTreatmentType") > AlternativeTreatmentTypeCd[] getAlternativeTreatmentTypes(); > @WebMethod > @WebResult(name = "BloodType") > BloodTypeCd[] getBloodTypes(); > @WebMethod > @WebResult(name = "CaseStatus") > EmrStatusCd[] getEmrStatuses(); > @WebMethod > @WebResult(name = "ClientStatus") > ClientStatusCd[] getClientStatuses(); > @WebMethod > @WebResult(name = "ContactType") > ContactTypeCd[] getContactTypes(); > @WebMethod > @WebResult(name = "Country") > CountryCd.code[] getCountries() throws Fault; > @WebMethod > @WebResult(name = "Country") > CountryCd getCountry(String code) throws Fault; > @WebMethod > @WebResult(name = "CreditcardType") > CreditcardTypeCd[] getCreditcardTypes(); > @WebMethod > @WebResult(name = "DentalExamReasonType") > DentalExamReasonTypeCd[] getDentalExamReasonTypes(); > @WebMethod > @WebResult(name = "DiagnoserType") > DiagnoserTypeCd[] getDiagnoserTypes(); > @WebMethod > @WebResult(name = "EmailType") > EmailTypeCd[] getEmailTypes(); > @WebMethod > @WebResult(name = "FrequencyType") > FrequencyTypeCd[] getFrequencyTypes(); > @WebMethod > @WebResult(name = "InstantMessageType") > InstantMessageTypeCd[] getInstantMessageTypes(); > @WebMethod > @WebResult(name = "ImmunizationType") > ImmunizationTypeCd[] getImmunizationTypes(); > @WebMethod > @WebResult(name = "Language") > LanguageCd[] getLanguages(); > @WebMethod > @WebResult(name = "LocationType") > LocationTypeCd[] getLocationTypes(); > @WebMethod > @WebResult(name = "MaritalStatus") > MaritalStatusCd[] getMaritalStatuses(); > @WebMethod > @WebResult(name = "MedicalConditionType") > MedicalConditionTypeCd[] getMedicalConditionTypes(); > @WebMethod > @WebResult(name = "MedicationFrequencie") > MedicationFrequencyCd[] getMedicationFrequencies(); > @WebMethod > @WebResult(name = "MedicationType") > MedicationTypeCd[] getMedicationTypes(); > @WebMethod > @WebResult(name = "NewsChannel") > NewsChannelCd[] getNewsChannels(); > @WebMethod > @WebResult(name = "PhoneType") > PhoneTypeCd[] getPhoneTypes(); > @WebMethod > @WebResult(name = "ProfessionalClientStatus") > RelationshipStatusCd[] getRelationshipStatuses(); > @WebMethod > @WebResult(name = "ProfessionalStatus") > ProfessionalStatusCd[] getProfessionalStatuses(); > @WebMethod > @WebResult(name = "ProfessionalType") > ProfessionalTypeCd[] getProfessionalTypes(); > @WebMethod > @WebResult(name = "WaitinglistPriority") > WaitinglistPriorityCd[] getWaitinglistPriorities(); > @WebMethod > @WebResult(name = "Profession") > ProfessionCd[] getProfessions(); > @WebMethod > @WebResult(name = "Race") > RaceCd[] getRaces(); > @WebMethod > @WebResult(name = "RatingType") > RatingTypeCd[] getRatingTypes(); > @WebMethod > @WebResult(name = "RecordType") > RecordTypeCd[] getRecordTypes(); > @WebMethod > @WebResult(name = "RelativeConditionType") > RelativeConditionTypeCd[] getRelativeConditionTypes(); > @WebMethod > @WebResult(name = "RelativeType") > RelativeTypeCd[] getRelativeTypes(); > @WebMethod > @WebResult(name = "Religion") > ReligionCd[] getReligions(); > @WebMethod > @WebResult(name = "Salutation") > SalutationCd[] getSalutations(); > @WebMethod > @WebResult(name = "Sex") > SexCd[] getSexes(); > @WebMethod > @WebResult(name = "SpecialtyType") > SpecialtyTypeCd[] getSpecialtyTypes(); > @WebMethod > @WebResult(name = "SurgeryType") > SurgeryTypeCd[] getSurgeryTypes(); > @WebMethod > @WebResult(name = "TreatmentType") > TreatmentTypeCd[] getTreatmentTypes(); > @WebMethod > @WebResult(name = "UserStatus") > UserStatusCd[] getUserStatuses(); > @WebMethod > @WebResult(name = "VisionExamReasonType") > VisionExamReasonTypeCd[] getVisionExamReasonTypes(); > @WebMethod > @WebResult(name = "VisionNonPrescriptionGlassesType") > VisionNonPrescriptionGlassesTypeCd[] > getVisionNonPrescriptionGlassesTypes(); > @WebMethod > @WebResult(name = "VisionPrescriptionGlassesType") > VisionPrescriptionGlassesTypeCd[] getVisionPrescriptionGlassesTypes(); > @WebMethod > @WebResult(name = "VisionContactLensType") > VisionContactLensTypeCd[] getVisionContactLensTypes(); > } > They are very different interfaces. Here are the beginnings of the > implementations: > @WebService(serviceName = "UserWebService", endpointInterface = > "com.hxcel.globalhealth.web.ws.UserWebService") > public class UserWebServiceImpl extends AbstractWebService implements > UserWebService {} > @WebService(serviceName = "ReferenceDataWebService", endpointInterface = > "com.hxcel.globalhealth.web.ws.ReferenceDataWebService") > public class ReferenceDataWebServiceImpl extends AbstractWebService > implements ReferenceDataWebService {} > AbstractWebService only has some String accessors. > These services have worked fine before as I said on CXF v2.0.x.... maybe even > 2.1.0. > When I start up the application and look at my available services I get this: > Available services: > UserWebService > * isUserUnique > * saveNewUser > * isUsernameTaken > * getUser > * login > Endpoint address: http://localhost:8080/services/UserWebService > Wsdl: {http://impl.ws.web.globalhealth.hxcel.com/}UserWebService > Target namespace: http://impl.ws.web.globalhealth.hxcel.com/ > UserWebService > * isUserUnique > * saveNewUser > * isUsernameTaken > * getUser > * login > Endpoint address: http://localhost:8080/services/ReferenceDataWebService > Wsdl: {http://impl.ws.web.globalhealth.hxcel.com/}UserWebService > Target namespace: http://impl.ws.web.globalhealth.hxcel.com/ > The web service I export first will always override all the other web > services I have. > Is this a bug or am I smoking the wrong end of the pipe again!? > Cheers > bjorn -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.