Re: T5.2 and CXF / SOAP

2011-09-28 Thread Norman Franke

Thanks! That should be very helpful.

I may be doing attachments for pictures and integrating with .NET, so  
the MTOM stuff should come in handy.


Norman Franke
Answering Service for Directors, Inc.
www.myasd.com



On Sep 27, 2011, at 8:30 AM, Ulrich Stärk wrote:


Sure:

First you need a CXF servlet to process incoming requests targeted  
at the web service. Something

along the lines of

public class MyCXFServlet extends CXFNonSpringServlet
{
   private static final long serialVersionUID = -2887022453330372210L;

   @Override
   public void loadBus(ServletConfig servletConfig) throws  
ServletException

   {
   super.loadBus(servletConfig);

   Registry registry = (Registry)
servletConfig 
.getServletContext 
().getAttribute(TapestryFilter.REGISTRY_CONTEXT_NAME);


   MyService impl = registry.getService(MyService,  
MyServiceImpl.class);


   Bus bus = this.getBus();
   BusFactory.setDefaultBus(bus);
   EndpointImpl ep = (EndpointImpl) Endpoint.create(impl);
   ep.getFeatures().add(new WSAddressingFeature());
   ep.setPublishedEndpointUrl(https://your.host/some/path/MyService 
);

   ep.publish(/MyService);
   }
}

As you can see we fetch the Tapestry IoC registry from the servlet  
context and ask it for a service
called MyService that is then being published by CXF. The service  
interface looks something like


import javax.activation.DataHandler;
import javax.jws.WebService;

@WebService
public interface RelationAnalyzer
{
   public ListFoo doSomething(DataHandler file) throws IOException;
}

In this case doSomething() is working on a file upload and since  
this one is speaking to a .NET
client we need to configure it to send files as MTOM attachments and  
configure it as a SOAP 1.2 HTTP

Binding:

import javax.activation.DataHandler;
import javax.jws.WebService;
import javax.xml.ws.BindingType;
import javax.xml.ws.soap.SOAPBinding;

@BindingType(SOAPBinding.SOAP12HTTP_MTOM_BINDING)
@WebService(endpointInterface = MyService,
   serviceName = MyService)
public class MyServiceImpl implements MyService
{
...
}

Additionally, in your AppModule you have to tell Tapestry to ignore  
the path where your webservice
is listening for requests (compare with above's  
setPublishedEndpointURL()):


public static void  
contributeIgnoredPathsFilter(ConfigurationString configuration)

{
   configuration.add(/some/path/.*);
}

Since in previous versions, Tapestry didn't copy annotations from  
the service implementation to it's

proxies, you have to bind the implementation itself:

binder.bind(MyServiceImpl.class).withId(MyService);

This might be different now, I haven't tried the new feature though.

And as a goodie from the web service client's app.config:

?xml version=1.0 encoding=utf-8 ?
configuration
   configSections
   /configSections
   system.serviceModel
   bindings
   customBinding
   binding name=MyServiceSoapBinding
 mtomMessageEncoding maxReadPoolSize=64  
maxWritePoolSize=16

   messageVersion=Soap12 writeEncoding=utf-8
   readerQuotas maxDepth=32  
maxStringContentLength=8192 maxArrayLength=16384
   maxBytesPerRead=4096  
maxNameTableCharCount=16384 /

   /mtomMessageEncoding
   httpsTransport manualAddressing=false  
maxBufferPoolSize=524288
   maxReceivedMessageSize=65536  
allowCookies=false

authenticationScheme=Anonymous
   bypassProxyOnLocal=false  
hostNameComparisonMode=StrongWildcard

   keepAliveEnabled=true maxBufferSize=65536
proxyAuthenticationScheme=Anonymous
   realm= transferMode=Buffered  
unsafeConnectionNtlmAuthentication=false
   useDefaultWebProxy=true  
requireClientCertificate=false

   /httpsTransport
   /binding
   /customBinding
   /bindings
   client
   endpoint address=https://your.host/some/path/MyService;
   binding=customBinding  
bindingConfiguration=MyServiceSoapBinding
   contract=MyService.MyService  
name=MyServiceImplPort /

   /client
   /system.serviceModel
/configuration

HTH,

Uli

On 26.09.2011 17:33, Norman Franke wrote:

Care to share?

Norman Franke
Answering Service for Directors, Inc.
www.myasd.com



On Sep 26, 2011, at 9:20 AM, Ulrich Stärk wrote:


I have.

On 24.09.2011 00:27, Norman Franke wrote:
So, since CXF appears to be way, way better documented, I'll ask.  
Has anyone integrated Tapestry

5's IoC with CXF?

Norman Franke
Answering Service for Directors, Inc.
www.myasd.com




-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org






-
To unsubscribe, e-mail: 

Re: T5.2 and CXF / SOAP

2011-09-27 Thread Ulrich Stärk
Sure:

First you need a CXF servlet to process incoming requests targeted at the web 
service. Something
along the lines of

public class MyCXFServlet extends CXFNonSpringServlet
{
private static final long serialVersionUID = -2887022453330372210L;

@Override
public void loadBus(ServletConfig servletConfig) throws ServletException
{
super.loadBus(servletConfig);
   
Registry registry = (Registry)
servletConfig.getServletContext().getAttribute(TapestryFilter.REGISTRY_CONTEXT_NAME);
   
MyService impl = registry.getService(MyService, MyServiceImpl.class);
   
Bus bus = this.getBus();
BusFactory.setDefaultBus(bus);
EndpointImpl ep = (EndpointImpl) Endpoint.create(impl);
ep.getFeatures().add(new WSAddressingFeature());
ep.setPublishedEndpointUrl(https://your.host/some/path/MyService;);
ep.publish(/MyService);
}
}

As you can see we fetch the Tapestry IoC registry from the servlet context and 
ask it for a service
called MyService that is then being published by CXF. The service interface 
looks something like

import javax.activation.DataHandler;
import javax.jws.WebService;

@WebService
public interface RelationAnalyzer
{
public ListFoo doSomething(DataHandler file) throws IOException;
}

In this case doSomething() is working on a file upload and since this one is 
speaking to a .NET
client we need to configure it to send files as MTOM attachments and configure 
it as a SOAP 1.2 HTTP
Binding:

import javax.activation.DataHandler;
import javax.jws.WebService;
import javax.xml.ws.BindingType;
import javax.xml.ws.soap.SOAPBinding;

@BindingType(SOAPBinding.SOAP12HTTP_MTOM_BINDING)
@WebService(endpointInterface = MyService,
serviceName = MyService)
public class MyServiceImpl implements MyService
{
...
}

Additionally, in your AppModule you have to tell Tapestry to ignore the path 
where your webservice
is listening for requests (compare with above's setPublishedEndpointURL()):

public static void contributeIgnoredPathsFilter(ConfigurationString 
configuration)
{
configuration.add(/some/path/.*);
}

Since in previous versions, Tapestry didn't copy annotations from the service 
implementation to it's
proxies, you have to bind the implementation itself:

binder.bind(MyServiceImpl.class).withId(MyService);

This might be different now, I haven't tried the new feature though.

And as a goodie from the web service client's app.config:

?xml version=1.0 encoding=utf-8 ?
configuration
configSections
/configSections
system.serviceModel
bindings
customBinding
binding name=MyServiceSoapBinding
  mtomMessageEncoding maxReadPoolSize=64 
maxWritePoolSize=16
messageVersion=Soap12 writeEncoding=utf-8
readerQuotas maxDepth=32 
maxStringContentLength=8192 maxArrayLength=16384
maxBytesPerRead=4096 
maxNameTableCharCount=16384 /
/mtomMessageEncoding
httpsTransport manualAddressing=false 
maxBufferPoolSize=524288
maxReceivedMessageSize=65536 allowCookies=false
authenticationScheme=Anonymous
bypassProxyOnLocal=false 
hostNameComparisonMode=StrongWildcard
keepAliveEnabled=true maxBufferSize=65536
proxyAuthenticationScheme=Anonymous
realm= transferMode=Buffered 
unsafeConnectionNtlmAuthentication=false
useDefaultWebProxy=true 
requireClientCertificate=false
/httpsTransport
/binding
/customBinding
/bindings
client
endpoint address=https://your.host/some/path/MyService;
binding=customBinding 
bindingConfiguration=MyServiceSoapBinding
contract=MyService.MyService name=MyServiceImplPort /
/client
/system.serviceModel
/configuration

HTH,

Uli

On 26.09.2011 17:33, Norman Franke wrote:
 Care to share?

 Norman Franke
 Answering Service for Directors, Inc.
 www.myasd.com



 On Sep 26, 2011, at 9:20 AM, Ulrich Stärk wrote:

 I have.

 On 24.09.2011 00:27, Norman Franke wrote:
 So, since CXF appears to be way, way better documented, I'll ask. Has 
 anyone integrated Tapestry
 5's IoC with CXF?

 Norman Franke
 Answering Service for Directors, Inc.
 www.myasd.com



 -
 To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
 For additional commands, e-mail: users-h...@tapestry.apache.org




-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: T5.2 and CXF / SOAP

2011-09-26 Thread Ulrich Stärk
I have.

On 24.09.2011 00:27, Norman Franke wrote:
 So, since CXF appears to be way, way better documented, I'll ask. Has anyone 
 integrated Tapestry
 5's IoC with CXF?

 Norman Franke
 Answering Service for Directors, Inc.
 www.myasd.com



-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: T5.2 and CXF / SOAP

2011-09-26 Thread Norman Franke

Care to share?

Norman Franke
Answering Service for Directors, Inc.
www.myasd.com



On Sep 26, 2011, at 9:20 AM, Ulrich Stärk wrote:


I have.

On 24.09.2011 00:27, Norman Franke wrote:
So, since CXF appears to be way, way better documented, I'll ask.  
Has anyone integrated Tapestry

5's IoC with CXF?

Norman Franke
Answering Service for Directors, Inc.
www.myasd.com




-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org





Re: T5.2 and CXF / SOAP

2011-09-26 Thread Lenny Primak
I would like to see this as well, perhaps this will help with my Metro web 
services integration.
Thanks!

On Sep 26, 2011, at 11:33 AM, Norman Franke wrote:

 Care to share?
 
 Norman Franke
 Answering Service for Directors, Inc.
 www.myasd.com
 
 
 
 On Sep 26, 2011, at 9:20 AM, Ulrich Stärk wrote:
 
 I have.
 
 On 24.09.2011 00:27, Norman Franke wrote:
 So, since CXF appears to be way, way better documented, I'll ask. Has 
 anyone integrated Tapestry
 5's IoC with CXF?
 
 Norman Franke
 Answering Service for Directors, Inc.
 www.myasd.com
 
 
 
 -
 To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
 For additional commands, e-mail: users-h...@tapestry.apache.org
 
 


-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



Re: T5.2 and CXF / SOAP

2011-09-26 Thread Daniel Honig
Yes over the long run you will be way better served by CXF than Metro, 2 years 
ago I would have chosen Metro,
but no longer.

Shame I can't help you integrate it with Tap.
On Sep 23, 2011, at 6:27 PM, Norman Franke wrote:

 So, since CXF appears to be way, way better documented, I'll ask. Has anyone 
 integrated Tapestry 5's IoC with CXF?
 
 Norman Franke
 Answering Service for Directors, Inc.
 www.myasd.com
 


-
To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
For additional commands, e-mail: users-h...@tapestry.apache.org



T5.2 and CXF / SOAP

2011-09-23 Thread Norman Franke
So, since CXF appears to be way, way better documented, I'll ask. Has  
anyone integrated Tapestry 5's IoC with CXF?


Norman Franke
Answering Service for Directors, Inc.
www.myasd.com