I don't know why but in this way it doesn't work for me too.
At first It seems to miss service units.
You can try to write
<sm:container id="jbi" useMBeanServer="true"
createMBeanServer="true" dumpStats="true" statsInterval="10">
<sm:activationSpecs>
<sm:activationSpec componentName="provider">
<sm:component>
<http:component>
<http:endpoints>
<http:endpoint service="xns:HelloServiceProxy"
endpoint="endpoint"
targetService="xns:HelloService"
targetEndpoint="xpto"
role="consumer"
soap="true"
soapVersion="1.1"
locationURI="http://localhost:8192/HelloServiceProxy/"
defaultMep="http://www.w3.org/2004/08/wsdl/in-out" />
</http:endpoints>
</http:component>
</sm:component>
</sm:activationSpec>
<sm:activationSpec componentName="provider">
<sm:component>
<http:component>
<http:endpoints>
<http:endpoint service="xns:HelloService"
endpoint="xpto"
role="provider"
soap="true"
soapVersion="1.1"
targetService="xns:HelloService"
targetEndpoint="HelloServiceHttpPort"
locationURI="http://localhost:8080/xfire-ws/services/HelloService"
wsdlResource="http://localhost:8080/xfire-ws/services/HelloService?wsdl" />
</http:endpoints>
</http:component>
</sm:component>
</sm:activationSpec>
</sm:activationSpecs>
</sm:container>
But calling directly the provider (without passing through a router),
you should not be able to retrieve the wsdl, even if the webservice
should work.
If this not a solution, I'm sorry...I need much training...:-(