AFAIK, this is a bug that has already been fixed. Just include the operationName in the annotation should work fine.
You could also bypass the jbi descriptor generation, but the same problem would happen at runtime, so this is not a good idea. The 3.1.1 version of ServiceMix should fix these problems. Sorry about that. On 4/5/07, Owen Thomas <[EMAIL PROTECTED]> wrote:
I have followed the steps below, and don't know what I'm doing wrong. 1. Create a new project using the following maven command at a command line: mvn archetype:create -DarchetypeGroupId=org.apache.servicemix.tooling -DarchetypeArtifactId=servicemix-jsr181-annotated-service-unit -DarchetypeVersion=3.1-incubating -DgroupId=test.webservice -DartifactId=TestWebService -DremoteRepositories=http://people.apache.org/repo/m2-incubating-reposit ory 2. Start NetBeans and open the project you created above. 3. Due to a bug in the archetype, the <executions> tag that was inserted in the POM must be removed. Scan for this tag, and remove all lines between <executions> and </executions> inclusive. 4. Due to a bug in the archetype, a property must be added manually to the POM. Scan for the <properties> tag, and add <xfire-version>1.2.2</xfire-version> inside this tag. 5. Save the POM, and build the project from inside NetBeans via the project's context menu. Output similar to the following should appear. * ******** Start of output. Embedded error: Unable to generate service unit descriptor! <component-task-result xmlns="http://java.sun.com/xml/ns/jbi/management-message"> <component-name>null</component-name> <component-task-result-details> <task-result-details> <task-id>deploy</task-id> <task-result>FAILED</task-result> <message-type>ERROR</message-type> <task-status-msg><msg-loc-info><loc-token/><loc-message>java.lang.Illega lArgumentException: Invalid name []</loc-message></msg-loc-info></task-status-msg> <exception-info> <nesting-level>1</nesting-level> <msg-loc-info> <loc-token /> <loc-message>Invalid name []</loc-message> <stack-trace><![CDATA[java.lang.IllegalArgumentException: Invalid name [] [INFO] at org.codehaus.xfire.service.ServiceInfo.addOperation(ServiceInfo.java:71) [INFO] at org.codehaus.xfire.service.binding.ObjectServiceFactory.addOperation(Obj ectServiceFactory.java:760) [INFO] at org.apache.servicemix.jsr181.xfire.ServiceFactoryHelper$FixedJAXWSServic eFactory.addOperation(ServiceFactoryHelper.java:210) [INFO] at org.codehaus.xfire.service.binding.ObjectServiceFactory.initializeOperat ions(ObjectServiceFactory.java:720) [INFO] at org.codehaus.xfire.service.binding.ObjectServiceFactory.create(ObjectSer viceFactory.java:418) [INFO] at org.codehaus.xfire.annotations.AnnotationServiceFactory.create(Annotatio nServiceFactory.java:253) [INFO] at org.apache.servicemix.jsr181.Jsr181Endpoint.registerService(Jsr181Endpoi nt.java:301) [INFO] at org.apache.servicemix.jsr181.Jsr181Endpoint.validate(Jsr181Endpoint.java :216) [INFO] at org.apache.servicemix.common.DefaultComponent.addEndpoint(DefaultCompone nt.java:300) [INFO] at org.apache.servicemix.common.DefaultComponent.doInit(DefaultComponent.ja va:287) [INFO] at org.apache.servicemix.jsr181.Jsr181Component.doInit(Jsr181Component.java :81) [INFO] at org.apache.servicemix.common.AsyncBaseLifeCycle.init(AsyncBaseLifeCycle. java:142) [INFO] at org.apache.servicemix.jsr181.packaging.Jsr181ServiceUnitAnalyzer.getProv ides(Jsr181ServiceUnitAnalyzer.java:57) [INFO] at org.apache.servicemix.common.xbean.AbstractXBeanServiceUnitAnalyzer.init (AbstractXBeanServiceUnitAnalyzer.java:96) [INFO] at org.apache.servicemix.maven.plugin.jbi.GenerateServiceUnitDescriptorMojo .generateJbiDescriptor(GenerateServiceUnitDescriptorMojo.java:166) [INFO] at org.apache.servicemix.maven.plugin.jbi.GenerateServiceUnitDescriptorMojo .execute(GenerateServiceUnitDescriptorMojo.java:129) [INFO] at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginMa nager.java:417) [INFO] at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(Default LifecycleExecutor.java:610) [INFO] at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifec ycle(DefaultLifecycleExecutor.java:551) [INFO] at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultL ifecycleExecutor.java:530) [INFO] at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandle Failures(DefaultLifecycleExecutor.java:309) [INFO] at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments( DefaultLifecycleExecutor.java:276) [INFO] at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifec ycleExecutor.java:143) [INFO] at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:393) [INFO] at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:182) [INFO] at org.apache.maven.embedder.MavenEmbedder.execute(MavenEmbedder.java:760) [INFO] at org.codehaus.mevenide.netbeans.execute.MavenJavaExecutor.run(MavenJavaEx ecutor.java:257) [INFO] at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:131) [INFO]]]></stack-trace> </msg-loc-info> </exception-info> </task-result-details> </component-task-result-details> </component-task-result> ******** End of output. * 6. The project will compile within NetBeans if the WebMethod annotation is either removed, or includes the operationName parameter. Help appreciated, Owen.
-- Cheers, Guillaume Nodet ------------------------ Architect, LogicBlaze (http://www.logicblaze.com/) Blog: http://gnodet.blogspot.com/
